web-dev-qa-db-fra.com

Analyser JSON avec org.json

J'essaie d'analyser une sortie d'un serveur qui ressemble à ceci:

{
  "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
    }
  ]
}

J'essaie d'utiliser Java org.json pour l'analyser, mais je n'ai aucune expérience avec JSON/org.json, donc j'ai un petit problème. Comment puis-je analyser cela?

18
Paul Ulrich

1) En supposant que vous ayez les bibliothèques JSON sur votre chemin (depuis www.json.org), c'est assez facile.

import org.json.JSONTokener;
...

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

De là, vous pouvez adresser les différentes parties de l'objet JSON. Jetez un œil aux Javadocs pour les détails. https://developer.Android.com/reference/org/json/package-summary.html

36
JohnnyO

Voici la solution la plus universelle, qui permet d'analyser n'importe quel type JSON en type Java Java:

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

Ensuite, vous pouvez déterminer le type résultant et le gérer de manière appropriée.

7
Nevkontakte