【问题标题】:How can I loop over a json array in android?如何在android中循环一个json数组?
【发布时间】:2017-06-19 17:28:17
【问题描述】:

我有一个来自 php 的字符串,看起来一模一样:"[{"id":"0","noteText":"Noteeeeeeee","date":"1232131","author":"John","authorId":"1"},{"id":"1","noteText":"Noteeeeeeee","date":"1232131","author":"Rob","authorId":"1"}]"

然后在我的onCreate 中的mainActiviry.java 我到了这一点:

    String json = allNotes;
    //System.out.println("String to Json Array Stmt");
    JsonParser parser = new JsonParser();
    JsonElement notes = parser.parse(allNotes);
    JsonArray notesArr = notes.getAsJsonArray();

我的目标是将 json 字符串解析为 json 对象数组,然后对其进行循环并将其提供给 ListView。问题是我无法到达那里,因为我无法遍历这个jsonArray。我的java知识太有限了,所以其他问题对我帮助不大。

有人可以帮忙吗?

附言我正在使用 gson

【问题讨论】:

标签: java php android json gson


【解决方案1】:

使用size 遍历JsonArray,同时使用get 函数使用i 索引获取JsonElement,并使用getAsJsonObject() 函数将其转换为JsonObject

    JsonParser parser  = new JsonParser();
    JsonElement notes  = parser.parse(s);
    JsonArray notesArr = notes.getAsJsonArray();
    for (int i = 0; i < notesArr.size(); i++) {
        // get your jsonobject 
        JsonObject obj = notesArr.get(i).getAsJsonObject();

       // do the same for the rest of the elements like date , author ,authorId
        String id,noteText,author;

        // fetch data from object
        id       = obj.get("id").getAsString();
        noteText = obj.get("noteText").getAsString();
        author   = obj.get("author").getAsString();

        // Store these values in list or objects you want

        System.out.println(id);
        System.out.println(noteText);
        System.out.println(author);
    }

输出:

0
Noteeeeeeee
John
1
Noteeeeeeee
Rob

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多