2012-04-20 27 views
0

にJSON文字列から値の配列内の値を取得する方法:返され、次のJSON文字列が与えられたJava

String s = "{"errorCode":0,"result":"Processed","trips":[{"tripDestination":"Vancouver","tripStartTime":"07:41"},{"tripDestination":"Montreal","tripStartTime":"08:04"}]}"; 

私は簡単のerrorCodeを取得し、のようなものとなることができます。

JSONObject jObject; 
jObject = new JSONObject(s); 

String result = jObject.getString("result"); 
Log.v("JSON Result", result); 

しかし、私はtripDestiationの値を取得して、それがJSON文字列内の値の配列であることを知っていますか?

+0

[JSON-シンプル](http://code.google.com/p/json-simple/) – AurA

答えて

1
jObject.getJSONArray("trips").getJSONObject(0).getString("tripDestination"); 
+0

ありがとうJavaコードにJSONコードを変換するためのシンプルなtoolkilです!それは完璧に動作します! – pbeaumier

1

おそらくgetJSONArray()メソッドが必要です。

参照:http://www.json.org/javadoc/org/json/JSONObject.html#getJSONArray(java.lang.String

編集:しかしJSONを解析するためGSONを使用することを検討して

JSONArray jsonArray = jObject.getJSONArray("trips"); 

:あなたが使用することができます

ArrayList<String> destinations = new ArrayList<String>(); 
JSONArray trips = jObject.getJSONArray("trips"); 
for (int i = 0; i < trips.length(); i++) { 
    destinations.add(trips.getJSONObject(i).getString("tripDestination")); 
} 
0

:私はのようなものを使用します。それは美しいです:

public class Class1 { 
    private String erroCode; 
    private String Processed; 
    private Class2[] trips; 
} 

class Class2 { 
    private String tripDestination; 
    private String tripStartTime; 
} 

Gson gson = new Gson(); 
Class1 object = gson.fromJson(s, Class1.class); 
+0

それは素晴らしいです。 GSONは適切に反射していますか? –

+0

申し訳ありませんが、私はこの用語に精通していません。 –

+0

あなたの例では 'private'と宣言され、コンストラクタもセッターもないので、リフレクションを使ってメンバーの値を代入するのかどうか疑問に思っていました。 –

関連する問題