java - Json迭代使用java

标签 java json getjson

这是我的 json 对象。

{"id":"mrbbt6f3fa99gld0m6n52osge0",
 "name_value_list":
 {"user_default_dateformat":{"name":"user_default_dateformat","value":"m/d/Y"}},
 "module_name":"Users"}    

我通过下面的代码得到了id和module_name。我怎样才能得到user_default_dateformat?。

我知道这可能很简单,但我是 json 的新手。

        String jsonResponse;

        while ((jsonResponse = br.readLine()) != null) {

            jsonOutput = jsonResponse;

        }
        JSONObject job = new JSONObject(jsonOutput);

        System.out.println(job);// i can see the same json object 
                                                that i showen above.
        sessionID = job.get("id").toString();

异常生成代码

JSONObject job2=new JSONObject(job);
dateFormat = job2.get("user_default_dateformat").toString();

异常是

org.json.JSONException: JSONObject["user_default_dateformat"] not found.    

谢谢,

最佳答案

name_value_list 也是一个对象。

JSONObject job2 = new JSONObject(job.get("name_value_list"));

这样就可以了

job2.get("user_default_dateformat");

JSON 中的每个 {} 都是一个对象。因此,对于您获得的每个类似于 {"xy":"za","ab":"cd"} 的字符串,您必须将其转换为 JSONObject

针对您的错误进行编辑:

正如您在代码中看到的那样:

JSONObject job2=new JSONObject(job);

将尝试从您的 JSONObject 生成一个 JSONObject。

您必须在您的 JSONObject 中获取 JSONObject。

您想获取 JSONObject 中的 user_default_dateformat:

String name_value_list_string = job.get("name_value_list").toString();
//this string is another json-string which contains the user_default_dateformat
JSONObject name_value_list_object = new JSONObject(name_value_list_string);

//This JSONObject contains the user_default_dateformat but this is also a JSONObject

String user_default_dateformat_string = name_value_list_object.get("user_default_dateformat").toString();
//this String contains the user_default_dateformat JSONString

JSONObject user_default_dateformat_object = new JSONObject(user_default_dateformat_string);

//This JSONObject contains the String values of your user_default_dateformat

关于java - Json迭代使用java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17939890/

相关文章:

java - 没有这样的方法错误 : ImmutableList. copyOf()

Java 8 - 如何仅通过一次遍历从初始字符串构建字符串

android - 在 JSON 对象中处理空值

javascript - 使用 jQuery 访问更复杂的 JSON

java - Android 套接字连接错误 IP 导致卡住

java - 处理二进制数据包

json - ExtJS 网格 - 如何关注添加的行?

c# - 反序列化 JSON,然后将其部分序列化回来

php - Facebook 注册插件 - 异步验证(电子邮件)

jquery - 将 JSON 对象从 Python 脚本发送到 jQuery?