java解析json方法总结


Posted in PHP onMay 16, 2019

工具包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和ACCESS写聊天室(四)
Oct 09 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
php中stream(流)的用法
Mar 25 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
YII实现分页的方法
Jul 09 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
利用php输出不同的心形图案
Apr 22 PHP
PHP使用自定义方法实现数组合并示例
Jul 07 PHP
PHP 出现 http500 错误的解决方法
Mar 09 PHP
微信支付之JSAPI公众号支付详解
May 15 #PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 #PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 #PHP
yii2的restful api路由实例详解
May 14 #PHP
php的扩展写法总结
May 14 #PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 #PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 #PHP
You might like
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
js表格分页实现代码
2009/09/18 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python自定义类并使用的方法
2015/05/07 Python
python requests 使用快速入门
2017/08/31 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
构建高效的python requests长连接池详解
2020/05/02 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
初中生学习的自我评价
2013/11/14 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
诚信考试倡议书
2014/04/15 职场文书
校园文明标语
2014/06/13 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
运动会广播稿100字
2015/08/19 职场文书
初中班长竞选稿
2015/11/20 职场文书
php png失真的原因及解决办法
2021/10/24 PHP