1

データベースとCIとしてmongodbを持つサイトからデータを取得しようとしています.jsonをサイトからの出力にエンコードする簡単なスクリプトを作成すると、出力は次のようになります。

   {
   "mko680": {
       "_id": {
       "$id": "515be1807bfb8b1d0d000000"
        },
       "channel": [
                  "channel a",
                  "subchannel a"
                  ],
       "channel_id": 227,
       "id": "mko680",
    }, 
   "mkv002": {
       "_id": {
       "$id": "515b32407bfb8b1d0d000000"
             },
       "channel": [
                 "channel a",
                 "subchannel b"
                   ],
       "channel_id": 232,
       "id": "mkv002",
  }
}

私はこのような私のAndroidプロジェクトでその出力を解析しようとします

JSONArray obj = new JSONArray(outputlike o);
for (int i = 0; i < obj.length(); i++) {
  JSONObject json_data = obj.getJSONObject(i);
  Log.i("test",json_data.getString("channel_id"));
}

logcat は org.JSON.Mismatch と言いました

json / my codeが正しくない手がかりはありますか?

ありがとう、そして私の悪い質問でごめんなさい、あなたが理解してくれることを願っています

更新しました :

今、私はそれを次のようなjsonオブジェクトに変更します:

JSONObject arr = new JSONObject(bufstring);
for (int i = 0; i < arr.length(); i++) {
Log.i("test",arr.getString("channel_id"));
}

しかし、logcat は今言った、channel_id の値はありませんが、その出力に channel_id があることは確かです。手がかりはありますか?

4

3 に答える 3

0

あなたの答えに基づいてすべてに感謝します私はそれを理解しました。最初は、適切なオブジェクトを取得するための動的キーを取得するのが難しくなりました。コードの下で使用して解決しました。良いものだとは思いませんが、これを一時的に使用します

JSONObject arr = new JSONObject(bufstring);   
 Iterator keys = arr.keys();
 while(keys.hasNext()) {
  String ambilKey = (String)keys.next();
  JSONObject AmbilObject = arr.getJSONObject(ambilKey);
  Log.i("test",AmbilObject.toString());
 }

すべての提案をありがとう、あなたはロックです :D

于 2013-04-04T02:37:04.087 に答える