[英]Parse json string to object using Gson
我尝试通过使用Gson将json字符串转换为java对象,但不知何故,我也没弄清楚原因。
我的Json琴弦
{
"JS":{
"JS0":{
"Name":"ABC",
"ID":"5"
},
"JS1":{
"Location":"UK",
"Town":"LD"
},
"JS2":{
"Usable":"true",
"Port":"ABC"
}
}
}
在Java代码中,我有4个类,JS,JS0,JS1和JS2
JS类包含JS0,JS1和JS2变量
JS0,JS1和JS2类包含与Json字符串示例相同的字段,例如JS0包含02个字段,字符串名称和字符串ID
在所有类中,我都有变量的getter / setter,02个构造函数(01个带有空参数,而另一个带有参数字段中的所有变量)
对于使用Gson:
Gson gson = new Gson();
jsObject = gson.fromJson(sb.toString(), JS.class);
当我从jsObject访问JS0,JS1和JS2对象时,它们为null。
有人可以告诉我我做错了什么吗?
非常感谢你,
这里的问题是,您正在尝试转换
{
"JS" : {
/* rest of JSON */
}
}
JS
对象,但是上面的JSON是这样的Java类的表示
class Foo {
JS JS;
}
因此,您需要首先从JSON字符串中获取JS
的值,然后调用fromJSON
以将JS.class作为第二个参数传递来反序列化它。
要么
创建一个仅包含JS
作为变量的简单类,然后调用fromJSON
并将该类作为fromJSON
的第二个参数传递,如下所示:
Java的
class Foo {
JS JS;
}
jsObject = gson.fromJson(sb.toString(), Foo.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.