首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中解析JSON数组(不是Json对象)

如何在Android中解析JSON数组(不是Json对象)
EN

Stack Overflow用户
提问于 2013-09-24 17:01:55
回答 10查看 280.2K关注 0票数 96

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

代码语言:javascript
复制
[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]

如果JSON是以不同的方式编写的(换句话说,如果我返回的是json对象而不是对象数组),我知道如何解析它。但这是我的全部,我必须接受它。

*EDIT:合法的json。我用这个json做了一个iPhone应用程序,现在我需要为安卓系统做这件事,但是我搞不清楚。有很多例子,但它们都与JSONObject相关。我需要一些东西给JSONArray。

有没有人可以给我一些提示,或者一个教程或者一个例子?

非常感谢!

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-09-24 17:05:55

使用以下代码片段解析JsonArray。

代码语言:javascript
复制
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");
}
票数 156
EN

Stack Overflow用户

发布于 2013-09-24 18:01:49

我只给出一个小的Jackson示例:

首先创建一个数据容器,其中的字段来自JSON字符串

代码语言:javascript
复制
// imports
// ...
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyDataHolder {
    @JsonProperty("name")
    public String mName;

    @JsonProperty("url")
    public String mUrl;
}

并解析MyDataHolders列表

代码语言:javascript
复制
String jsonString = // your json
ObjectMapper mapper = new ObjectMapper();
List<MyDataHolder> list = mapper.readValue(jsonString, 
    new TypeReference<ArrayList<MyDataHolder>>() {});

使用列表项

代码语言:javascript
复制
String firstName = list.get(0).mName;
String secondName = list.get(1).mName;
票数 27
EN

Stack Overflow用户

发布于 2013-09-24 17:12:07

代码语言:javascript
复制
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);
    }   
}   

输出:

代码语言:javascript
复制
name1
url1
name2
url2
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18977144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档