REST JSON応答からの次の文字列があります。
[
{
"uid":10512213,
"name":"Bob"
},
{
"uid":7208201,
"name":"John"
},
{
"uid":10570,
"name":"Jim"
},
{
"uid":1799657,
"name":"Sally"
}
]
残りの応答の定義はFacebookからのものです: FB REST Link
Jettyで動作するGoogle App Engine + GAELYKを使用しています。
上記をmapsのarrayに変換する最良の方法は何ですか?サーバー上のGroovy。 (これはおそらく応答を再帰的に行う必要があります)
たくさんのライブラリを含まない簡単なものを探しています。 (私はメイブンを持っていません)
import groovy.json.JsonSlurper
// Example Response Data
def restResponse = '[{"uid":10512213, "name":"Bob"},{"uid":7208201, "name":"John"},{"uid":10570, "name":"Jim"},{"uid":1799657, "name":"Sally"}]'
// Parse the response
def list = new JsonSlurper().parseText( restResponse )
// Print them out to make sure
list.each { println it }
JsonSlurperを使用...
その応答を読み取るスクリプトの例は次のようになります。
@Grab('net.sf.json-lib:json-lib:2.3:jdk15')
import net.sf.json.groovy.JsonSlurper
// Example Response Data
def restResponse = '[{"uid":10512213, "name":"Bob"},{"uid":7208201, "name":"John"},{"uid":10570, "name":"Jim"},{"uid":1799657, "name":"Sally"}]'
// Parse the response
def list = new JsonSlurper().parseText( restResponse )
// Print them out to make sure
list.each { println it }
これは出力します:
[uid:10512213, name:Bob]
[uid:7208201, name:John]
[uid:10570, name:Jim]
[uid:1799657, name:Sally]
ご覧のとおり、list
はマップのリストです。たとえば、名前のリストだけが必要な場合は、次のようにします。
def names = list.name
これをGaelykアプリで使用するには、 ここからjson-lib-2.3-jdk15.jarをダウンロード し、同様のことを行う必要があります(@Grabを使用しないと、jarが作成されます)あなたのWEB-INF/lib
フォルダ。
-編集-
周りを見て、見つかった 依存関係を示すこのページ json-lib
テストスクリプトの@Grabは多くのバックグラウンド作業を行います
JSON配列は_[
_文字で始まり、_]
_文字で終わります。 JSONオブジェクトは_{
_で始まり、_}
_で終わります。
JSON.orgにアクセスすると、JSONArray.Javaをダウンロードできます。それを使用してJSON配列を作成します。次に、配列for (int i = 0; i < array.length(); i++)
をループ処理し、array.getJSONObject(i);
を呼び出して各JSONオブジェクトを取得します。これにより、JSONObject
が返されます。そこから、それぞれの属性値を取得します。 long uid = json.getLong("uid");
お役に立てれば。