首页 > 代码库 > Json数据解析
Json数据解析
1 Java代码:
"[{"name":"kevin","age":25},{"name":"cissy","age":24}]";
这是一个json数组。解析的流程:
1. 碰到"[",开始解析Json数组。
2. 碰到"{",开始解析Json对象。
3. 解析Json对象里面的值。
4. 碰到"}",解析Json对象结束。
5. 碰到"]",解析Json数组结束。
另外Gson可以直接解析Json数组或者对象到你自定义的一个对象,这里我就多作解释了。代码里注释写的很清楚。
代码如下:
1 package com.kevin.json; 2 3 import java.io.IOException; 4 import java.io.StringReader; 5 import java.lang.reflect.Type; 6 import java.util.Iterator; 7 import java.util.LinkedList; 8 9 import com.google.gson.Gson;10 import com.google.gson.reflect.TypeToken;11 import com.google.gson.stream.JsonReader;12 13 public class JsonUtils {14 public void parseJson(String jsonData){15 // 解析JSON数据,首先要创建一个JsonReader对象16 JsonReader reader = new JsonReader(new StringReader(jsonData));17 try {18 // 开始解析JSON数组19 reader.beginArray();20 // 循环读取JSON中的数组21 while(reader.hasNext()){22 // 开始解析JSON数组里的对象23 reader.beginObject();24 // 循环读取JSON数组中的对象25 while(reader.hasNext()){26 String tagName = reader.nextName();27 if(tagName.equals("name")){28 System.out.println("name---->" + reader.nextString());29 }30 else if(tagName.equals("age")){31 System.out.println("age---->" + reader.nextInt());32 }33 }34 reader.endObject();35 }36 reader.endArray();37 } catch (IOException e) {38 e.printStackTrace();39 } 40 }41 public void parseUserFromJson(String jsonData){42 // 解析json对象并赋值给User对象43 Gson gson = new Gson();44 User user = gson.fromJson(jsonData, User.class);45 System.out.println("name---->" + user.getName());46 System.out.println("age---->" + user.getAge());47 }48 // 解析JSON数组并赋值给User对象49 public void parseUserArrayFromJson(String jsonData){50 // 取得该类型的实体51 Type listType = new TypeToken<LinkedList<User>>(){}.getType();52 Gson gson = new Gson();53 LinkedList<User> users = gson.fromJson(jsonData, listType);54 for(Iterator<User> iterator = users.iterator(); iterator.hasNext();){55 User user = (User)iterator.next();56 System.out.println("name---->" + user.getName());57 System.out.println("age---->" + user.getAge());58 }59 }60 }
Json数据解析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。