java - 在android中反序列化JSON字符串

标签 java android json

我有如下所示的 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/

相关文章:

Java 泛型 Comparable,其中子类无法相互比较

java - 如何使用dylib文件?

java - Java/Android 中的线程

javascript - 尽管 json 给出了错误的数据,但从 API 中获取内容

javascript - 将 CSV 文件转换为嵌套 JSON obj

java - tomcat需要哪些环境变量?

java - JNI 代码中的 UnsatisfiedLinkError

android - 当我在 Android Studio 的异步线程中调用 Toast.makeText 时,它会导致应用程序崩溃吗?

android - 如何在 Android 的聊天或消息应用程序中发送表情符号(图像、笑脸)?

c++ - 正确使用 Poco C++ JSON 解析数据