当前位置:首页 > PHP教程 > php应用 > 列表

java解析json方法总结

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-22 23:16:56 浏览: 评论:0 

在本篇文章中小编给大家总结了关于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.  
  63. package com.test; 
  64.  
  65. import java.util.*; 
  66.  
  67.    
  68.  
  69. import com.alibaba.fastjson.*; 
  70.  
  71.    
  72.  
  73. public final class TestFastJson { 
  74.  
  75.    
  76.  
  77.   public static void main(String[] args) { 
  78.  
  79.     // TODO Auto-generated method stub 
  80.  
  81.        
  82.  
  83.     TestPerson json = new TestPerson(19,"李明"); 
  84.  
  85.     List<TestPerson> list = new ArrayList<TestPerson>(); 
  86.  
  87.     list.add(json); 
  88.  
  89.     list.add(new TestPerson(12,"张三")); 
  90.  
  91.     //将集合或者对象序例化成JSON 
  92.  
  93.     System.out.println(JSON.toJSON(json)); 
  94.  
  95.     System.out.println( JSON.toJSON(list) ); 
  96.  
  97.     //Json串反序列化成对象 
  98.  
  99.     TestPerson person = JSON.parseObject("{\"name\":\"李明\",\"age\":19}", TestPerson.class); 
  100.  
  101.     System.out.printf("name:%s,age:%d\n",person.getName(),person.getAge()); 
  102.  
  103.        
  104.  
  105.     String str = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"; 
  106.  
  107.     //数组对象反序列化成集合 
  108.  
  109.     List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.class); 
  110.  
  111.        
  112.  
  113.     for(TestPerson item : listPerson){ 
  114.  
  115.       System.out.println( item.getName() ); 
  116.  
  117.       System.out.println( item.getAge()); 
  118.  
  119.     } 
  120.  
  121.        
  122.  
  123.     //没有对象直接解析JSON对象 
  124.  
  125.     JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}"); 
  126.  
  127.     System.out.printf("name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age")); 
  128.  
  129.        
  130.  
  131.     //没有对象直接解析JSON数组 
  132.  
  133.     JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"); 
  134.  
  135.        
  136.  
  137.     for(int i=0,len=jarr.size();i<len;i++){ 
  138.  
  139.       JSONObject temp= jarr.getJSONObject(i); 
  140.  
  141.       System.out.printf("name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age")); 
  142.  
  143.     } 
  144.  
  145.        
  146.  
  147.     for(Object obj:jarr){ 
  148.  
  149.       System.out.println(obj.toString()); 
  150.  
  151.     } 
  152.  
  153.        
  154.  
  155.   } 
  156.  
  157.    
  158.  
  159. }

Tags: java解析json

分享到: