2016-05-06 6 views
2

私のアプリはAPIからJSON応答を受け取ります。それが到着すると、アプリは地図として結果を得るためにJSONParserクラスを使用します。CN1のJSON内でJSONを抽出

JSONParser jp = new JSONParser(); 
Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8")); 

「結果」は2つの値が含まれています。まず、私はキー「URL」を使用して取得することができますURL:

String url = result.get("url"); 

そして第二に、JSON形式であると私はキー「熱心」を使用して取得したデータの別のセットを。私は地図に展開しようとした:

java.util.List<Map<String, Object>> eager = (java.util.List<Map<String, Object>>) result.get("eager"); 

た地図は、地図のように動作していないので、私は文字列に全体熱心地図を通過し、ちょうど内容を確認するために、私はデータが内部にあることに気づきました

[{item1=x, item2=x,.....itemN=x}] 

質問:私はJSONオブジェクトとしてデータを取得できますか このようなブラケット、?

+0

あなたは構文解析後の行にブレークポイントを配置し、デバッガ変数インスペクタツールを使用する必要がありますデータ構造を理解する。 –

答えて

2

結果の文字列をリストとして解析します。このような "データ"を取得しようとするとどうなるでしょうか?

java.util.List<Map<String, Object>> newResult = (java.util.List<Map<String, Object>>) result.get(0); 
+0

いいえ、動作しませんでした。より具体的に私の質問を編集しました。 – Felipe

+1

私はそれを得た。あなたの答えはとても近かった。私はもう一度繰り返しなければならなかった。ありがとう! – Felipe

1

リストを取得するには、「データ」ではなく「ルート」キーを使用する必要があります。

+0

キーの実際の名前は "熱心"です。私は私の質問を編集しました。そのキーは私にデータを与えますが、括弧の中に入ります。私は "熱心な"マップに "ルート"を使用しようとします – Felipe

+0

私は熱心なマップに "toArray()"を適用しました。今、私はその配列の位置0を得ることができ、{{}}ではなく{}でデータを取得します。どのようにマップやハッシュテーブルに変換できますか? – Felipe

1

"result"はマップです。 "eager"は地図のリストです。

あなたはデータと地図を取得するために熱心な地図の最初の位置を取得する必要があります:

Map <String, Object> result = jp.parseJSON(new InputStreamReader(input, "UTF-8")); 

java.util.List<Map<String, Object>> eager = (java.util.List<Map<String, Object>>) result.get("eager"); 

Map<String, Object> eagerMap = (Map<String, Object>) eager.get(0);