【发布时间】:2016-07-21 19:44:30
【问题描述】:
我在我的项目中使用 REST 模板使用 REST Web 服务,该模板返回如下 JSON:
{"data": [{
"id": "INT-1468819244684-event-no-97",
"object1": {
"JSONString": "{\"object2\":[{\"object3\":\"value3\",\"object4\":\"value4\"}]}"
}
}]
}
在使用上述 JSON 响应时,我能够创建一个 bean 类并将 JSON 对象/值转储到其中。
但问题是上面的json响应包含如下字符串:
"JSONString": "{\"object2\":[{\"object3\":\"value3\",\"object4\":\"value4\"}]}"
这实际上是一个json。所以我有一个 bean,我可以在其中获取 JSONString 作为字符串。所以目前我可以使用下面的 bean 结构来获取对象中的响应:
public class response {
Data data;
}
public class Data {
String id;
Object1 object1;
}
public class Object1 {
String jsonString;
}
但上面的 jsonString 包含一个 json 形式的字符串,所以我想在运行时以某种方式将此 JSON 字符串转换为 JSON 对象,只有在创建其他对象并将其所有内容转储到同一个 bean 时,应用程序应该是准备使用它的内容。所以理想情况下,我的 bean 层次结构应该如下所示:
public class response {
Data data;
}
public class Data {
String id;
Object1 object1;
}
public class Object1 {
JSONString jsonString;
}
public class JSONString {
Object2 object2;
}
public class Object2 {
String object3;
String object4;
}
请指导我如何做同样的事情。
【问题讨论】:
-
最后一段真的不清楚。您能否edit 展示您的 bean,以及您要做什么?
-
@4castle 我会试一试。它们有一个键值对,其中值是一个 JSON 字符串,其字符串值内容是一个 JSON 对象。他们想反序列化,就好像那个 JSON 对象是 kvp 的值而不是 JSON 字符串,即。
{"object2":[{"object3":"value3", "object4":"value4"}]} -
@SotiriosDelimanolis 谢谢!好的,我现在明白了。
-
可能还有更多,但这里有一个相关问题:Jackson double serialized json string to Java object
-
@4castle:我添加了 bean,希望能提供更多的清晰度。
标签: java json spring jackson gson