为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

30秒到达战场 2019-07-10 16:44:43
如何在Android中解析JSONArray(而不是JSON对象)我很难找到解析JSONArray的方法。看起来是这样的:[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]如果JSON是以不同的方式编写的,我知道如何解析它(换句话说,如果返回json对象而不是对象数组)。但这是我所拥有的,也是我必须要做的。*编辑:这是一个有效的JSON。我用这个json制作了一个iPhone应用程序,现在我需要为Android做这件事,但我想不出答案。有很多例子,但它们都是与JSONObject相关的。我需要一些东西给JSONArray。有人能给我一些提示,或者一个教程或者一个例子吗?非常感谢!
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

使用以下片段解析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");}

希望能帮上忙。


查看完整回答
反对 回复 2019-07-10
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

我就给你一点杰克森例子:

首先,创建一个数据持有者,其中包含来自JSON字符串的字段

// imports// ...@JsonIgnoreProperties(ignoreUnknown = true)public class MyDataHolder {
    @JsonProperty("name")
    public String mName;

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

和解析MyDataHolders的列表

String jsonString = // your jsonObjectMapper 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;


查看完整回答
反对 回复 2019-07-10
?
SMILET

TA贡献1796条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 1497 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信