我有一个实体:
class A {
String errors ;// a json string of some type (type could vary).
Double value;
...
public A(String theErrors, Double theValue) {
errors = theErrors;
value=theValue;
}
}
A a = new A("{tl:[\"err1\"]...}", 10d);
我需要将 a 转换为json字符串。
使用google gson库我可以使用:
String str = gson.toJson(a)
但是s.a. errors字段是一个String,它被转义,结果是:
// {"错误":" { tl:[" err1"] ... }" ,"价值":10}
不是
// {"错误": { tl:[" err1"] ... } ,&#34 ;价值":10}
至于现在我尝试类似的事情:
String str = gson.toJson(a).replace("\"{", "{").replace("}\"}", "}}")
但这是一个脆弱的解决方案。
有没有人知道,如果有更好的方法来解决这个问题?提前致谢。
PS:关键是底层错误对象的类型是未知的(它取决于错误的来源)
答案 0 :(得分:0)
似乎我找到了解决方案:
String getAsJson(A a) {
JsonObject jsonMedia = (JsonObject) g.toJsonTree(a);
jsonMedia.add("errors", g.fromJson(a.getA(), JsonElement.class));
return g.toJson(jsonMedia);
}