Swaraj Pal created LANG-1543:
--------------------------------
Summary: ToStringBuilder.reflectionToString doesnt render nested
maps correctly.
Key: LANG-1543
URL: https://issues.apache.org/jira/browse/LANG-1543
Project: Commons Lang
Issue Type: Bug
Components: lang.*
Affects Versions: 3.10
Reporter: Swaraj Pal
Nested Maps are not converted correctly as JSON using
ToStringBuilder.reflectToString commons-lang3:3.10 . Please find below the
example to reproduce:-
Class:
{code:java}
public class Student {
private String name;
private Map<String, String> education;
//getters and setters...
public String toString() {
return ToStringBuilder.reflectionToString(this,
ToStringStyle.JSON_STYLE);
}}
{code}
Driver test:
{code:java}
Student p = new Student();
p.setName("como");
Map<String, String> educationMap = new HashMap<String, String>();
educationMap.put("primary", "school");
educationMap.put("graduation", "B.S.");
p.setEducation(educationMap);
System.out.println(p.toString());
{code}
The toString() prints
{code:java}
{"education":{graduation=B.S., primary=school},"name":"como"}
{code}
but I expect as JSON it should print as below (with proper key,value pairs as
field names and values)
{code:java}
{"education":{"graduation": "B.S.", "primary":"school"},"name":"como"}
{code}
Suggested fix:
I can create a Pull request for this issue handling Maps appending logic.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)