我有如下所示的 JSON 字符串
{ "Status":"Clear", "Class": [{ <br>
{"name":"personA", "available" : 1}, <br>
{"name":"personB", "available" : 0}, <br>
{"name":"personC", "available" : 0}, <br>
{"name":"personD", "available" : 1} <br>
}] }
如何反序列化上面的 JSON 字符串?
我想到了使用 JSONObject 将整个 JSON 字符串放入其中,但不知道如何获取对象的数组列表(类对象的列表)并分配给数组列表
非常感谢指导和帮助。
已更新:
已解决并显示解决方案
我已经解决了这个问题,但我想我必须解释一下我是如何以及为什么使用这种解决方案的。
所以为了进一步解释我的问题,这是一个 json 字符串,它最初是一个对象,被序列化并从网络服务发送到我的应用程序。
原始对象是这样的:
public class StatusJson
{
public String Status { get; set; }
public List<Class> Class { get; set; }
}
所以我要做的就是在我的 android 中声明一个完全相同的类,然后使用这段代码
statusJson statusJSON=g.fromJson(JSonString,StatusJson.class);
它会自动将 json 字符串解析为完全相同的类格式。
如果您像我一样直接发送 JSON 序列化类,希望这对你们也有帮助。
最佳答案
我建议你查看Gson library .
你可以创建一个带注解的类
private class ClassObj {
@SerializedName("personA")
private final String personA;
....
}
然后
ClassObj object = gson.fromJson(jsonString, ClassObj.class);
可以是复杂对象,包含其他gson对象或Collection。尝试。
关于java - 在android中反序列化JSON字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135957/