加入收藏 | 设为首页 | 会员中心 | 我要投稿 唐山站长网 (https://www.0315zz.com.cn/)- 数据安全、数据开发、文字识别、图像处理、媒体智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

java解析json方法总结

发布时间:2022-07-14 11:05:36 所属栏目:PHP教程 来源:互联网
导读:在本篇文章中小编给大家总结了关于java解析json方法总结以及相关知识点,需要的朋友们学习下。 工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, CDL的转换。 这里推荐使用:阿里巴巴FastJson
  在本篇文章中小编给大家总结了关于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。
 
  以上都是一些项目中的常用方法。
 
  以下是自己练习写的代码:
 
  package com.test;
   
     
   
  public class TestPerson {
   
    private int age;
   
    private String name;
   
       
   
    public TestPerson(){
   
         
   
    }
   
       
   
    public TestPerson(int age,String name){
   
      this.age=age;
   
      this.name=name;
   
    }
   
       
   
    public int getAge() {
   
      return age;
   
    }
   
    public void setAge(int age) {
   
      this.age = age;
   
    }
   
    public String getName() {
   
      return name;
   
    }
   
    public void setName(String name) {
   
      this.name = name;
   
    }
   
  }
   
     
   
     
   
     
   
  package com.test;
   
  import java.util.*;
   
     
   
  import com.alibaba.fastjson.*;
   
     
   
  public final class TestFastJson {
   
     
   
    public static void main(String[] args) {
   
      // TODO Auto-generated method stub
   
         
   
      TestPerson json = new TestPerson(19,"李明");
   
      List<TestPerson> list = new ArrayList<TestPerson>();
   
      list.add(json);
   
      list.add(new TestPerson(12,"张三"));
   
      //将集合或者对象序例化成JSON
   
      System.out.println(JSON.toJSON(json));
   
      System.out.println( JSON.toJSON(list) );
   
      //Json串反序列化成对象
   
      TestPerson person = JSON.parseObject("{"name":"李明","age":19}", TestPerson.class);
   
      System.out.printf("name:%s,age:%dn",person.getName(),person.getAge());
   
         
   
      String str = "[{"name":"李明","age":19},{"name":"张三","age":12}]";
   
      //数组对象反序列化成集合
   
      List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.class);
   
         
   
      for(TestPerson item : listPerson){
   
        System.out.println( item.getName() );
   
        System.out.println( item.getAge());
   
      }
   
         
   
      //没有对象直接解析JSON对象
   
      JSONObject jobj = JSON.parseObject("{"name":"李明","age":19}");
   
      System.out.printf("name:%s,age:%dn",jobj.getString("name"),jobj.getBigInteger("age"));
   
         
   
      //没有对象直接解析JSON数组
   
      JSONArray jarr = JSON.parseArray("[{"name":"李明","age":19},{"name":"张三","age":12}]");
   
         
   
      for(int i=0,len=jarr.size();i<len;i++){
   
        JSONObject temp= jarr.getJSONObject(i);
   
        System.out.printf("name:%s,age:%dn",temp.getString("name"),temp.getBigInteger("age"));
   
      }
   
         
   
      for(Object obj:jarr){
   
        System.out.println(obj.toString());
   
      }
   
         
   
    }
   
     
   
  }
 

(编辑:唐山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读