Проблема с Android JSONObject от веб-сервиса Grails - PullRequest
0 голосов
/ 14 апреля 2011

Хорошо, я запрашиваю данные из веб-службы Grails, которая возвращает JSON. JSON при просмотре с приложением JSONViewer анализируется нормально. Когда я беру эту же строку и использую JSONObject (string) в своем приложении для Android, я получаю «значение String не может быть преобразовано в JSONObject».

Вот моя строка JSON

[[{"class":"mygrails.TopTen","id":491,"ttAmount":14200000,"ttMlId":402,"ttRank":1,"ttWeekId":1108},{"class":"mygrails.MovieList","id":402,"mlApproved":1,"mlApprovedId":5,"mlMovieId":"GNOMEOAN","mlReleaseDate":"2011-03-08T07:41:45Z","mlTitle":"Gnomeo and Juliet","mlWeekId":1106}]]

Теперь JSON происходит от стандартного преобразования JSON SQL-данных с использованием рендеринга из файла groovy через import grails.converters.JSON.

... //(call to render JSON in the groovy file)
def a
a = Table.findAll("from someTable as st where st.id=" params.id)
render a as JSON
...

Так что я не уверен, что я делаю неправильно, и почему JSON выглядит немного странно для меня. (еще новичок в JSON)

Ответы [ 3 ]

2 голосов
/ 14 апреля 2011

В json, если вы видите, «[]» означает массив json, а если вы видите «{}», это объект json. Тогда оба могут быть вложены внутрь другого.

В вашем случае строка начинается с массива json.

Так что попробуйте что-то вроде следующего

String str = "[[{"class":"mygrails.TopTen","id":491,"ttAmount":14200000,"ttMlId":402,"ttRank":1,"ttWeekId":1108},{"class":"mygrails.MovieList","id":402,"mlApproved":1,"mlApprovedId":5,"mlMovieId":"GNOMEOAN","mlReleaseDate":"2011-03-08T07:41:45Z","mlTitle":"Gnomeo and Juliet","mlWeekId":1106}]]";

JSONArray jsonArray = new JSONArray(str);

jsonArray = jsonArray.getJSONArray(0);

JSONObject jsonObject = jsonArray.getJSONObject(0);

String class = jsonObject.getString("class"); // class will value "mygrails.TopTen"
2 голосов
/ 14 апреля 2011

Попробуйте создать JSONArray из String вместо JSONObject. Я не проверял это, но это должно сработать: у вас есть два вложенных массива, которые содержат действительные данные.

0 голосов
/ 23 июня 2012

Проверьте свой JSON онлайн с http://jsonformat.com/

http://www.freeformatter.com/json-formatter.html

JSON Viewer http://jsonviewer.stack.hu/

Вставьте туда свой текст, и вы увидите, что вам следует проанализировать:

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