1
{"Sam":{"status":"available","classkey":"dotnet"}}

このタイプのjsonを解析するには?

try {
                JSONObject jObj = new JSONObject(json);
                if(jObj != null){
                    domtdl = jObj.getString(dom);
                    try {
                        JSONObject c = new JSONObject(domtdl);
                        if(c != null){
                            status = c.getString(TAG_STATUS);   
                            System.out.println(status);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }           

            } catch (JSONException e) {
                e.printStackTrace();
            }

それが正しいか?2 番目の JSON オブジェクトからデータを取得する方法がわかりません。私を助けてください。

4

2 に答える 2

1

この特定の json 文字列について{"Sam":{"status":"available","classkey":"dotnet"}}

あなたがする必要があります

try {
    JSONObject jObj = (new JSONObject(json)).getJSONObject("Sam");
    String status = jObj.getString("status");
    String classkey = jObj.getString("classkey");
} catch (JSONException e) {
    e.printStackTrace();
}
于 2013-07-27T09:14:54.620 に答える
0
       try
       {
       JSONObject jb = new JSONObject(myjsonstring);
       JSONObject job = jb.getJSONOBject("Sam"); 
       String status = job.getString("status");
       Log.i("Status is",status);
       String classkey = job.getString("classkey");
       Log.i("Class Key is",classkey);
       catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }

{json オブジェクト ノードを表します

{ // json object node
"Sam": {   // json object SAM
    "status": "available",  json string 
    "classkey": "dotnet"    json string 
}
}

JSON チュートリアル @

http://www.w3schools.com/json/

あなたのjsonは時々以下のようになることもあります。

[json 配列ノードを表します

  {
"employees": [
    {
        "firstName": "John",
        "lastName": "Doe"
    },
    {
        "firstName": "Anna",
        "lastName": "Smith"
    },
    {
        "firstName": "Peter",
        "lastName": "Jones"
    }
]
}

上記を解析するには

   StringBuilder sb = new StringBuilder();
        try {
        JSONObject jb = new JSONObject(myjsonstring);
        JSONArray jarr = jb.getJSONArray("employees");
        for(int i=0;i<jarr.length();i++)
        {
            JSONObject job = jarr.getJSONObject(i);
            String firstname = job.getString("firstName");
            String lastname = job.getString("lastName");
            sb.append(firstname);
            Log.i("firstname",firstname);
            sb.append("\n");
            Log.i("lastname",lastname);
        }
        Toast.makeText(getApplicationContext(), sb, 10000).show();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2013-07-27T10:04:47.147 に答える