我很难找到一种解析JSONArray的方法。它看起来是这样的:
[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]
如果JSON是以不同的方式编写的(换句话说,如果我返回的是json对象而不是对象数组),我知道如何解析它。但这是我的全部,我必须接受它。
*EDIT:合法的json。我用这个json做了一个iPhone应用程序,现在我需要为安卓系统做这件事,但是我搞不清楚。有很多例子,但它们都与JSONObject相关。我需要一些东西给JSONArray。
有没有人可以给我一些提示,或者一个教程或者一个例子?
非常感谢!
发布于 2013-09-24 17:05:55
使用以下代码片段解析JsonArray。
JSONArray jsonarray = new JSONArray(jsonStr);
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject jsonobject = jsonarray.getJSONObject(i);
String name = jsonobject.getString("name");
String url = jsonobject.getString("url");
}
发布于 2013-09-24 18:01:49
我只给出一个小的Jackson示例:
首先创建一个数据容器,其中的字段来自JSON字符串
// imports
// ...
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyDataHolder {
@JsonProperty("name")
public String mName;
@JsonProperty("url")
public String mUrl;
}
并解析MyDataHolders列表
String jsonString = // your json
ObjectMapper mapper = new ObjectMapper();
List<MyDataHolder> list = mapper.readValue(jsonString,
new TypeReference<ArrayList<MyDataHolder>>() {});
使用列表项
String firstName = list.get(0).mName;
String secondName = list.get(1).mName;
发布于 2013-09-24 17:12:07
public static void main(String[] args) throws JSONException {
String str = "[{\"name\":\"name1\",\"url\":\"url1\"},{\"name\":\"name2\",\"url\":\"url2\"}]";
JSONArray jsonarray = new JSONArray(str);
for(int i=0; i<jsonarray.length(); i++){
JSONObject obj = jsonarray.getJSONObject(i);
String name = obj.getString("name");
String url = obj.getString("url");
System.out.println(name);
System.out.println(url);
}
}
输出:
name1
url1
name2
url2
https://stackoverflow.com/questions/18977144
复制相似问题