小编在本文中给大家介绍三种Android JSON数据解析的方法,通过这些方法,大家可以了解其中的脉络。
解析方法1:
代码:
- public void parseJson(String jsonData){
-
- try {
- //如果需要解析JSON数据,首先要生成JsonReader对象
- JsonReader reader = new JsonReader(new StringReader(jsonData));
- /**
- * 1.现在开始解析一个数组
- * 2.开始解析对象
- * 3.解析键值对
- * 4.解析键值对
- * 5.解析对象结束
- * 6.开始解析对象
- * 7.解析键值对
- * 8.解析键值对
- * 9.解析对象结束
- * 10.解析数组结束
- */
- reader.beginArray();
- while(reader.hasNext()){//有没有下一个
- reader.beginObject();
- while(reader.hasNext()){//判断有没有键值对
- String tagname = reader.nextName();
- if(tagname.equals("name")){
- System.out.println("name=------>" + reader.nextString());
- }else if(tagname.equals("age")){
- System.out.println("age--->" + reader.nextInt());
- }
-
- }
- reader.endObject();
- }
- reader.endArray();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
解析方法2:
代码:
- public void parseJson(String jsonData){
- System.out.println(jsonData);
- Gson gson = new Gson();
- User user = gson.fromJson(jsonData, User.class);
- System.out.println("name----->" + user.getName());
- System.out.println("age----->" + user.getAge());
- }
注意:这种只能解析对象,不可以解析数组的
解析方法3:
代码:
- import java.lang.reflect.Type;
- import java.util.Iterator;
- import java.util.LinkedList;
- import com.google.gson.Gson;
- import com.google.gson.reflect.TypeToken;
-
- public class JsonUtilsArray {
- public void parseJson(String jsonData){
- System.out.println(jsonData);
- Type listType = new TypeToken<LinkedList<User>>(){}.getType();
- Gson gson = new Gson();
- LinkedList<User> users= gson.fromJson(jsonData, listType);
- for (Iterator iterator = users.iterator(); iterator.hasNext();) {
- User user = (User) iterator.next();
- System.out.println("name----->" + user.getName());
- System.out.println("age----->" + user.getAge());
- }
- }
- }