欢迎光临
我们一直在努力

java解析json方法总结

在本篇文章中小编给大家总结了关于java解析json方法总结以及相关知识点,需要的朋友们学习下。

工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, CDL的转换。

这里推荐使用:阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:

速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;

功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

源码地址:

https://github.com/alibaba/fastjson

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray

public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean

public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合

public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本

public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本

public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

以上都是一些项目中的常用方法。

以下是自己练习写的代码:

  1. package com.test; 
  2.  
  3.    
  4.  
  5. public class TestPerson { 
  6.  
  7.   private int age; 
  8.  
  9.   private String name; 
  10.  
  11.      
  12.  
  13.   public TestPerson(){ 
  14.  
  15.        
  16.  
  17.   } 
  18.  
  19.      
  20.  
  21.   public TestPerson(int age,String name){ 
  22.  
  23.     this.age=age; 
  24.  
  25.     this.name=name; 
  26.  
  27.   } 
  28.  
  29.      
  30.  
  31.   public int getAge() { 
  32.  
  33.     return age; 
  34.  
  35.   } 
  36.  
  37.   public void setAge(int age) { 
  38.  
  39.     this.age = age; 
  40.  
  41.   } 
  42.  
  43.   public String getName() { 
  44.  
  45.     return name; 
  46.  
  47.   } 
  48.  
  49.   public void setName(String name) { 
  50.  
  51.     this.name = name; 
  52.  
  53.   } 
  54.  
  55.  
  56.    
  57.  
  58.    
  59.  
  60.    
  61.  
  62. package com.test; 
  63.  
  64. import java.util.*; 
  65.  
  66.    
  67.  
  68. import com.alibaba.fastjson.*; 
  69.  
  70.    
  71.  
  72. public final class TestFastJson { 
  73.  
  74.    
  75.  
  76.   public static void main(String[] args) { 
  77.  
  78.     // TODO Auto-generated method stub 
  79.  
  80.        
  81.  
  82.     TestPerson json = new TestPerson(19,"李明"); 
  83.  
  84.     List<TestPerson> list = new ArrayList<TestPerson>(); 
  85.  
  86.     list.add(json); 
  87.  
  88.     list.add(new TestPerson(12,"张三")); 
  89.  
  90.     //将集合或者对象序例化成JSON 
  91.  
  92.     System.out.println(JSON.toJSON(json)); 
  93.  
  94.     System.out.println( JSON.toJSON(list) ); 
  95.  
  96.     //Json串反序列化成对象 
  97.  
  98.     TestPerson person = JSON.parseObject("{\"name\":\"李明\",\"age\":19}", TestPerson.class); 
  99.  
  100.     System.out.printf("name:%s,age:%d\n",person.getName(),person.getAge()); 
  101.  
  102.        
  103.  
  104.     String str = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"
  105.  
  106.     //数组对象反序列化成集合 
  107.  
  108.     List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.class); 
  109.  
  110.        
  111.  
  112.     for(TestPerson item : listPerson){ 
  113.  
  114.       System.out.println( item.getName() ); 
  115.  
  116.       System.out.println( item.getAge()); 
  117.  
  118.     } 
  119.  
  120.        
  121.  
  122.     //没有对象直接解析JSON对象 
  123.  
  124.     JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}"); 
  125.  
  126.     System.out.printf("name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age")); 
  127.  
  128.        
  129.  
  130.     //没有对象直接解析JSON数组 
  131.  
  132.     JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"); 
  133.  
  134.        
  135.  
  136.     for(int i=0,len=jarr.size();i<len;i++){ 
  137.  
  138.       JSONObject temp= jarr.getJSONObject(i); 
  139.  
  140.       System.out.printf("name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age")); 
  141.  
  142.     } 
  143.  
  144.        
  145.  
  146.     for(Object obj:jarr){ 
  147.  
  148.       System.out.println(obj.toString()); 
  149.  
  150.     } 
  151.  
  152.        
  153.  
  154.   } 
  155.  
  156.    
  157.  
  158. }

赞(0) 本模板价: 打赏
未经允许不得转载:站长分享圈 » java解析json方法总结