我怎样才能在android中循环json数组?

时间:2017-06-19 17:28:17

标签: java php android json gson

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

然后在我onCreate的{​​{1}}中我达到了这一点:

mainActiviry.java

我的目标是将json字符串解析为json对象数组,然后将其循环并将其提供给 String json = allNotes; //System.out.println("String to Json Array Stmt"); JsonParser parser = new JsonParser(); JsonElement notes = parser.parse(allNotes); JsonArray notesArr = notes.getAsJsonArray(); 。问题是我无法到达那里,因为我没有遍历这个ListView。我的java知识太有限了,所以其他问题对我没什么帮助。

有人可以帮忙吗?

P.S。我正在使用gson

1 个答案:

答案 0 :(得分:5)

使用JsonArray使用size使用JsonElement使用get索引使用i遍历JsonObject并使用{{将其转换为getAsJsonObject() 1}}功能

    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