我有一个问题,我对此一无所知,任何人都可以帮助我: 我们有一个json:
{
"status":"0",
"result": {
"object1": {
"name":"name1",
"age":"21"
},
"object2": {
"event":"new year",
"date":"date"
},
"object1_1": {
"name":"name2",
"age":"22"
},
"object2_1": {
"event":"birthday",
"date":"date"
}
}
}
答案 0 :(得分:1)
您可以尝试使用jackson json转换为对象。 http://jackson.codehaus.org/
答案 1 :(得分:0)
如果要将此json反序列化为包含Map的对象(并且该地图包含litteral值和其他地图)。假设你有一个类似于:
的beanclass MyBean {
int status;
Map<String, Object> result;
}
MyBean myBean = new Gson().fromJson(jsonString, MyBean.class);
它应该无需修改即可使用。请注意,如果状态类型不是数字,我不确定Gson是否在json字符串中进行了转换,引用了值,同样适用于您的“age”属性。
您还可以查看Genson库http://code.google.com/p/genson/它具有大多数Gson功能,其他没有其他库提供并具有更好的性能。看一下wiki http://code.google.com/p/genson/wiki/GettingStarted。
修改强>
名称是否真的像object1_1,object2_1等?在查看结构时,我想象object1与object2一起使用了很长时间。如果您使用gson,您可以编写自定义TypeAdapter http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/TypeAdapter.html。
因此,您可以创建类似于
的根对象 class Response {
int status;
List<MyObject> result;
}
class MyObject {
String name;
int age;
String event;
String date;
}
在TypeAdapter的read方法中,您应该根据键(object1 with object2,object1_1 with object2_1 ...)组合MyObject的实例,或采用类似的方法。 如果您想了解更多有关如何操作的详细信息,您也可以向Gson google小组询问。