java解析json方法总结

 更新时间:2019年05月16日 08:37:41   投稿:laozhang  
在本篇文章中小编给大家总结了关于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:%d\n",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:%d\n",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:%d\n",temp.getString("name"),temp.getBigInteger("age"));

    }

     

    for(Object obj:jarr){

      System.out.println(obj.toString());

    }

     

  }

 

}

相关文章

  • php 操作调试的方法

    php 操作调试的方法

    php 操作调试的方法,需要的朋友可以参考下
    2012-07-07
  • PHP中使用gettext来支持多语言的方法

    PHP中使用gettext来支持多语言的方法

    开发多语言的Web应用是一件非常困难的事,各个国家的字符集的编码方式、货币符号、日期格式、数字格式、文字表现都各不相同.
    2011-05-05
  • php一维二维数组键排序方法实例总结

    php一维二维数组键排序方法实例总结

    这篇文章主要介绍了php一维二维数组键排序方法,以实例形式总结了针对一维数组的冒泡排序与使用array_multisort()对二位数组按照指定键值排序等方法,具有不错的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • php实现的简单美国商品税计算函数

    php实现的简单美国商品税计算函数

    这篇文章主要介绍了php实现的简单美国商品税计算函数,涉及php数学计算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP判断一个字符串是否是回文字符串的方法

    PHP判断一个字符串是否是回文字符串的方法

    这篇文章主要介绍了PHP判断一个字符串是否是回文字符串的方法,实例分析了php操作字符串判断回文的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • php5.3中连接sqlserver2000的两种方法(com与ODBC)

    php5.3中连接sqlserver2000的两种方法(com与ODBC)

    有时候我们需要在php5.3环境中使用sqlserver2000,这里简单的介绍下,我们知道新版的php5.3是不支持mysql自带的mssql_connect这个数据连接函数,如果需要连接sqlserver数据库,我们只能使用了com 接口来做
    2012-12-12
  • PHP Post获取不到非表单数据的问题解决办法

    PHP Post获取不到非表单数据的问题解决办法

    这篇文章主要介绍了PHP Post获取不到非表单数据的问题的解决办法以及代码分享,需要的朋友参考下。
    2018-02-02
  • PHP单例模式简单用法示例

    PHP单例模式简单用法示例

    这篇文章主要介绍了PHP单例模式简单用法,结合数据库操作类实例形式分析了php单例模式的具体实现方法与使用技巧,需要的朋友可以参考下
    2017-06-06
  • PHP获取数组中重复最多的元素的实现方法

    PHP获取数组中重复最多的元素的实现方法

    这篇文章主要介绍了PHP获取数组中重复最多的元素的实现方法,通过一个自定义函数遍历数组实现这一功能,是非常使用的技巧,需要的朋友可以参考下
    2014-11-11
  • php基于协程实现异步的方法分析

    php基于协程实现异步的方法分析

    这篇文章主要介绍了php基于协程实现异步的方法,结合实例形式分析了php基于协程调度的异步操作实现方法,需要的朋友可以参考下
    2019-07-07

最新评论