Каков правильный формат ответа JSON? - PullRequest
1 голос
/ 24 февраля 2011

Я работал с несколькими различными API, где мне нужно было проанализировать JSON.И во всех случаях Ответ строится немного по-другому.

Теперь мне нужно предоставить некоторые данные через JSON API и я хочу узнать, как правильно доставить этот Ответ.

Вотпример того, что я имею сейчас, однако некоторые пользователи (один из которых использует Java) испытывают затруднения при разборе.

    {"status": "200 OK", 
    "code": "\/api\/status\/ok", 
    "result": {
      "publishers": ["Asmodee", "HOBBITY.eu", "Kaissa Chess & Games"], 
      "playing_time": 30, "description": "2010 Spiel des Jahres WinnerOne player is the storyteller for the turn. He looks at the 6 images in his hand. From one of these, he makes up a sentence and says it out loud (without showing the card to the other players).The other players select amongst their 6 images the one that best matches the sentence made up by the storyteller.Then, each of them gives their selected card to the storyteller, without showing it to the others. The storyteller shuffles his card with all the received cards. ",   
      "expansions": ["Dixit 2", "Dixit 2: \"Gift\" Promo Card", "Dixit 2: The American Promo Card", "Dixit Odyssey"], 
      "age": 8, 
      "min_players": 3, 
      "mid": "\/m\/0cn_gq3", 
      "max_players": null,  
      "designers": ["Jean-Louis Roubira"], 
      "year_published": 2008, 
      "name": "Dixit"
      }
    }

В частности, пользователь Java жалуется, что он получает ошибку:

org.json.JSONException: [строка json] типа org.json.JSONObject не может быть преобразована в JSONArray

Но в Python я могу принять в этом ответе, извлечь «результат», а затем проанализировать, как и любой другойДанные JSON.

* ОБНОВЛЕНИЕ *

Я передал JSON и Twitter в JSONLint.Оба действительны.Пользователь Java может анализировать JSON в Twitter, но не мой.Что я заметил в JSON в Twitter, так это в том, что он заключен в квадратные скобки [], обозначая массив.И ошибка, которую этот пользователь получает с моим JSON, заключается в том, что он не может быть преобразован в массив JSON.Я не думал, что мне нужно заключать в скобки.

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Выглядит действительным согласно http://json.parser.online.fr/ (случайный парсер json).В другом коде я бы сказал;)

0 голосов
/ 24 февраля 2011

Как именно вы генерируете этот ответ? Вы делаете это сами?

Я вижу, что у вас есть висячая запятая в конце последнего элемента в publishers (т.е. после значения Kaissa Chess & Games).

Я бы рекомендовал использовать JSONLint , чтобы убедиться, что ваш JSON действителен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...