4

これが私の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.    

ありがとう、

4

2 に答える 2

4

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
于 2013-07-30T06:40:50.680 に答える