码迷,mamicode.com
首页 > Web开发 > 详细

数据解析2:JSON解析(2)

时间:2015-10-13 22:25:11      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

  JSON解析除了导入json包,通过JSONObject类和JSONArray类进行解析外,还有其他的解析方法,如谷歌Gson解析和阿里巴巴FastJson解析,它们都需要导入相应的包。

 

  下面主要介绍Gson解析和FastJson解析:

  1.Gson解析:

  技术分享

    Gson解析JSON字符串的步骤:

    1.创建Gson对象

      Gson gson = new Gson();

    2.调用Gson的解析方法,fromJson()

     技术分享

     其中比较常用的是:

        1)fromJson(String json,Class<T> classOfT);

        2)fromJson(String json,Type typeOfT);

        第一种方法第二个参数是一个.Class对象,该方法返回的是一个类的对象,它解析的原JSON字符串是一个对象形式

        第二种方法第二个参数是一个Type对象,该方法返回的是一个List<T>集合,它解析的原JSON字符串是一个数组形式

          TypeToken<T> token = new TypeToken<T>(){};

          Type type = token.getType();

    示例1:

技术分享

  运行结果:

技术分享

 

  示例2:

技术分享
 1 package com.gson;
 2 
 3 import java.util.List;
 4 
 5 import org.json.JSONArray;
 6 import org.json.JSONException;
 7 import org.json.JSONObject;
 8 
 9 import com.google.gson.Gson;
10 import com.google.gson.reflect.TypeToken;
11 
12 public class Test2 {
13     public static void main(String[] args) throws JSONException {
14         String json = "{persons:[{name:‘jack‘,age:23},{name:‘tom‘,age:20}]}";
15 
16         JSONObject object = new JSONObject(json);
17         JSONArray array = object.getJSONArray("persons");
18         
19         Gson gson = new Gson();
20         TypeToken<List<Person>> token = new TypeToken<List<Person>>() {
21         };
22         List<Person> list = gson.fromJson(array.toString(), token.getType());
23         System.out.println(list);
24     }
25 
26     class Person {
27         String name;
28         String age;
29 
30         @Override
31         public String toString() {
32             return "Person [name=" + name + ", age=" + age + "]";
33         }
34     }
35 }
源代码

  运行结果:

技术分享

 

  2.FastJson解析

技术分享

  FastJson可以解析四种类型的JSON字符串: 

   1. JavaBean

          Person person = JSON.parseObject(jsonString, Person.class);

      2. List<JavaBean>

          List<Person> listPerson =JSON.parseArray(jsonString, Person.class);

      3. List<String>

          List<String> listString = JSON.parseArray(jsonString, String.class);

      4. List<Map<String,Object>>

          List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});

 

  示例1:

技术分享
 1 package com.leijia.fastjsondemo;
 2 
 3 import com.alibaba.fastjson.JSON;
 4 
 5 public class Main {
 6     public static void main(String[] args) {
 7         String jsonStr = "{name:‘Tom‘,age:‘23‘}";
 8         Student student = JSON.parseObject(jsonStr,Student.class);
 9         System.out.println("student:"+student);
10     }
11     private static class Student{
12         String name;
13         String age;
14         
15         public String getName() {
16             return name;
17         }
18 
19         public void setName(String name) {
20             this.name = name;
21         }
22 
23         public String getAge() {
24             return age;
25         }
26 
27         public void setAge(String age) {
28             this.age = age;
29         }
30 
31         @Override
32         public String toString() {
33             return "Student [name=" + name + ", age=" + age + "]";
34         }
35     }
36 }
View Code

   FastJson不仅可以解析Json字符串,同时也可以将对象转换为JSON字符串。

  

  未完,待续。

  

 

 

 

 

 

 

 

 

 

      

  

数据解析2:JSON解析(2)

标签:

原文地址:http://www.cnblogs.com/enjoy-coding/p/4816098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!