如何在Android中解析JSONArray(而不是JSON对象)

如何在Android中解析JSONArray(而不是JSON对象)

我很难找到解析JSONArray的方法。看起来是这样的:

[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]

如果JSON是以不同的方式编写的,我知道如何解析它(换句话说,如果返回json对象而不是对象数组)。但这是我所拥有的,也是我必须要做的。

*编辑:这是一个有效的JSON。我用这个json制作了一个iPhone应用程序,现在我需要为Android做这件事,但我想不出答案。有很多例子,但它们都是与JSONObject相关的。我需要一些东西给JSONArray。

有人能给我一些提示,或者一个教程或者一个例子吗?

非常感谢!


30秒到达战场
浏览 1498回答 3
3回答

拉风的咖菲猫

使用以下片段解析JsonArray。JSONArray&nbsp;jsonarray&nbsp;=&nbsp;new&nbsp;JSONArray(jsonStr);for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;jsonarray.length();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;jsonobject&nbsp;=&nbsp;jsonarray.getJSONObject(i); &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;jsonobject.getString("name"); &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;jsonobject.getString("url");}希望能帮上忙。

拉莫斯之舞

我就给你一点杰克森例子:首先,创建一个数据持有者,其中包含来自JSON字符串的字段//&nbsp;imports//&nbsp;...@JsonIgnoreProperties(ignoreUnknown&nbsp;=&nbsp;true)public&nbsp;class&nbsp;MyDataHolder&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;@JsonProperty("name") &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;mName; &nbsp;&nbsp;&nbsp;&nbsp;@JsonProperty("url") &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;mUrl;}和解析MyDataHolders的列表String&nbsp;jsonString&nbsp;=&nbsp;//&nbsp;your&nbsp;jsonObjectMapper&nbsp;mapper&nbsp;=&nbsp;new&nbsp;ObjectMapper();List<MyDataHolder>&nbsp;list&nbsp;=&nbsp;mapper.readValue(jsonString,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;TypeReference<ArrayList<MyDataHolder>>()&nbsp;{});使用列表项String&nbsp;firstName&nbsp;=&nbsp;list.get(0).mName;String&nbsp;secondName&nbsp;=&nbsp;list.get(1).mName;

SMILET

public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;JSONException&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;=&nbsp;"[{\"name\":\"name1\",\"url\":\"url1\"},{\"name\":\"name2\",\"url\":\"url2\"}]"; &nbsp;&nbsp;&nbsp;&nbsp;JSONArray&nbsp;jsonarray&nbsp;=&nbsp;new&nbsp;JSONArray(str); &nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;&nbsp;i<jsonarray.length();&nbsp;i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;obj&nbsp;=&nbsp;jsonarray.getJSONObject(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;obj.getString("name"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;obj.getString("url"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(name); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(url); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;}产出:name1 url1 name2 url2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android