我有一个来自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
答案 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