0
JSONArray cities = json.getJSONArray("city");

上記のコードでは、次の出力が得られました。

{
"id":"1",
"name":"London"
"country":"United Kingdom"
},

{
"id":"2",
"name":"Madrid"
"country":"Spain"
},

{"id":"3",
"name":"Paris"
"country":"France"
},

{
"id":"3",
"name":"Zurich"
"country":"Switzerland"
}

JSON配列から文字列配列に名前だけを取得するにはどうすればよいですか?

例えば:String[] s ={"London","Madrid","Paris","Zurich"}

4

5 に答える 5

1
// you should probably mention what json library you use in your question
String[] cities = new String[cities.length()];
for (int i = 0; i<cities.length(); i++) {
    cities[i] = cities.getJsonObject(i).getString("name");
}
于 2012-08-29T19:04:47.157 に答える
1

citiesJSONObjects の配列です。その JSONObject の配列を反復処理し、"name"それぞれから属性を取得します。コードが便利に記述されている @ pb2q の回答を参照してください。

于 2012-08-29T19:03:02.103 に答える
0

をループしJSONArrayて、フィールドを引き出し"name"ます。これはjson.getJSONArray("city");呼び出しと同様に行われますが、ループ内でのみ行われます。

JSONArray cities = json.getJSONArray("city");
JSONObject city = null;
String[] s = new String[cities.length()];

for (int i = 0; i < cities.length(); i++)
{
    city = cities.getJsonObject(i);
    s[i] = city.get("name");
}
于 2012-08-29T19:05:20.630 に答える
0

JsonPathのようなライブラリを使用してみてください。

コードは次のようになります。

String rawJsonString = ...;
List<String> cities = JsonPath.read(rawJsonString, "$.city.name");
于 2012-08-29T20:10:23.183 に答える
0

JsonPath http://code.google.com/p/json-path/を使用

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>0.8.1</version>
</dependency>

すべての都市名を取得できます

String rawJsonString = "...";
List<String> cities = JsonPath.read(rawJsonString, "$.city[*].name");
于 2013-03-15T18:47:35.163 に答える