在开发中经常会遇到解析json的问题
在这里总结几种解析的方式:
方式一:
json数据:
private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
解析jsonData的方法
try { //如果需要解析Json数据,首先要生成一个JsonReader对象 JsonReader reader=new JsonReader(new StringReader(jsonData)); 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) { // TODO Auto-generated catch block e.printStackTrace(); } }
方法二:
private String jsonData="{\"name\":\"Michael\",\"age\":20}";
解析方法
Gson gson=new Gson(); User user=gson.fromJson(jsonData, User.class); System.out.println("name-->"+user.getName()); System.out.println("age-->"+user.getAge());
这里需要导入gson-2.2.4.jar
public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
这个是对于比较简单的数据的解析方式
方法三:
private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
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()); }
其实除了这三种方式还有其他方法,等以后用到了再总结。
Android中解析Json数据
时间: 2024-10-14 11:16:47