好的,我从一个返回JSON的Grails JSON服务中查询数据。当使用JSONViewer应用程序查看JSON时,它可以很好地解析。当我获取相同的字符串并在我的安卓应用程序中使用JSONObject( string )时,我得到"value of String cannot to 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是通过导入grails.converters.JSON从groovy文件中使用render对SQL数据进行标准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来说还是个新东西)
发布于 2011-04-14 17:13:37
在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"发布于 2011-04-14 16:11:14
尝试从字符串而不是JSONObject创建JSONArray。我没有对此进行测试,但这应该能起到作用:您有两个包含实际数据的嵌套数组。
发布于 2012-06-23 08:43:44
使用http://jsonformat.com/在线查看您的JSON
http://www.freeformatter.com/json-formatter.html
JSON查看器http://jsonviewer.stack.hu/
将文本粘贴到其中,您可以看到应该解析的内容:
https://stackoverflow.com/questions/5660101
复制相似问题