web-dev-qa-db-ja.com

JSONをorg.jsonで解析する

次のようなサーバーからの出力を解析しようとしています。

{
  "GetFolderFilesByZoneResult": [
    {
      "ID": 98748,
      "CreatedBy": "",
      "UpdatedBy": "none",
      "CreatedDate": "\/Date(1308273033620+0100)\/",
      "UpdatedDate": "\/Date(1308303003770+0100)\/",  
      "CommentCount": 0,
      "Key": "",
      "Enabled": true,
      "MimeType": "video",
      "Votes": 2,
      "TotalRating": 0,
      "AllowComments": true,
      "ViewCount": 323,
      "ReleaseDate": "\/Date(1308273000000+0100)\/",
      "ExpireDate": "\/Date(4102444800000+0000)\/",
      "Author": "",
      "Size": 133799936,
      "Tag1": "",
      "Tag2": "",
      "Tag3": "",
      "RecycleBin": false
    },
    {
      "ID": 99107,
      "CreatedBy": "",
      "UpdatedBy": "none",
      "CreatedDate": "\/Date(1308583412520+0100)\/",
      "UpdatedDate": "\/Date(1308583564007+0100)\/",     
      "CommentCount": 0,
      "Key": "",
      "Enabled": true,
      "MimeType": "video",
      "Votes": 0,
      "TotalRating": 0,
      "AllowComments": true,
      "ViewCount": 33,
      "ReleaseDate": "\/Date(1308583380000+0100)\/",
      "ExpireDate": "\/Date(4102444800000+0000)\/",
      "Author": "",
      "Size": 47955968,
      "Tag1": "",
      "Tag2": "",
      "Tag3": "",
      "RecycleBin": false
    }
  ]
}

Java org.jsonを使用して解析しようとしていますが、JSON/org.jsonの経験がないため、少し問題があります。方法これを解析しますか?

18
Paul Ulrich

1)パスに(www.json.orgから)JSONライブラリがあると仮定すると、それは非常に簡単です。

import org.json.JSONTokener;
...

URI uri = new URI("http://someserver/data.json");
JSONTokener tokener = new JSONTokener(uri.toURL().openStream());
JSONObject root = new JSONObject(tokener);

そこから、JSONオブジェクトのさまざまな部分をアドレス指定できます。詳細については、Javadocをご覧ください。 https://developer.Android.com/reference/org/json/package-summary.html

36
JohnnyO

これは最も一般的なソリューションで、JSONタイプを適切なJavaタイプに解析できます。

Object json = new JSONTokener(response).nextValue();

次に、結果のタイプを判別して適切に処理できます。

7
Nevkontakte