0

私はJSON文字列を持っています

   [
   {"created_at":"Thu Jan 24 07:27:12 +0000 2013",
     "id":294345590119227392,
     "user":{
             "id":213539531,
              "name":"Hamid",
              "screen_name":"HamidMirGEO",
             },
     "retweeted":false
     }]

次のコードを使用した解析

        InputStream is = this.getResources().openRawResource(R.raw.jsontwitter);
        byte [] buffer = new byte[is.available()];
        while (is.read(buffer) != -1);
        String jsontext = new String(buffer);
        JSONArray entries = new JSONArray(jsontext);
        for (i=0;i<entries.length();i++)
        {
            JSONObject post = entries.getJSONObject(i);
            x += "Date:" + post.getString("created_at") + "\n";
            x += "Post:" + post.getString("text") + "\n\n";
            x += "Pp:" + post.getString("screen_name") + "\n\n";//error reading this
        }

最初の 2 つの解析は成功しましたが、2 番目の中括弧 {} 内のデータを読み取る際に問題が発生しました。これの任意のソリューション。

4

4 に答える 4

4

使用する:

x += "Pp:" + post.getJSONObject("user").getString("screen_name") + "\n\n";

それ以外の:

x += "Pp:" + post.getString("screen_name") + "\n\n";
于 2013-01-24T08:01:37.707 に答える
2

screen_name を取得するJSONObjectには、含まれているにアクセスする必要があります。次のようにします。

JSONObject user = post.getJSONObject("user");
user.getString("screen_name") // this will return the screen_name
于 2013-01-24T08:09:55.243 に答える
2

screen_nameネストされたオブジェクトにあります。次のコードを使用します。

post.getJSONObject("user").getString("screen_name");
于 2013-01-24T08:01:38.410 に答える
1

「HamidMirGeo」の後に余分なコマがあるので、それを取り除きます。

于 2013-01-24T08:03:19.377 に答える