所以我有一个像www.example.com这样的rest模型Org.java,其中有一个String类型的字段。
public class Org {
private String employee;
...
}
public class Employee {
private final String id;
private final type;
....
}
在返回API响应时,我需要返回employe
字段的employee对象列表,因此在我的后端中,我得到了employee
对象列表。List <Employee> employeeList = getEmployeesList(..);
**注意:**employeeList永远不会为空。
然后我尝试将employeeList
转换为JSON到String,然后使用以下方法在API模型中设置。
方法1:
String employees= new Gson().toJson(employeeList);
org.setEmployee(employees);
方法2:
String employees= (new Gson().toJson(employeeList)).replaceAll("\\","");
org.setEmployee(employees);
问题是在每个双引号前面都加了一个反斜杠,我不想在id、type和它的值前面加\。
有谁能帮我解决这个问题吗?
目前我得到的
{
"employee": [{\"id\":\"156543\",\"type\":\"employee\"}]
}
而我想要的是下面
{
"employee": [{"id":"156543","type":"employee"}]
}
2条答案
按热度按时间s1ag04yj1#
出现此问题是因为您执行了两次序列化。第一步生成一些双引号,第二步希望将双引号序列化为
\"
字符。在这种情况下,我建议您创建最终对象并将其序列化。例如,您应该进行如下更改:
结果应如下所示:
b4qexyjb2#
与我之前使用的方法无关。但是我通过将我的employee字段的数据类型从String转换为Object,解决了上述问题。通过这种方式,它在请求时接受String,在响应时接受Object列表。