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数组应用之比较两个时间的相减排序
Aug 18 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
非常实用的php弹出错误警告函数扩展性强
Jan 17 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
May 04 PHP
隐性调用php程序的方法
Jun 13 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
php中static和const关键字用法分析
Dec 07 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
Mar 23 PHP
如何使用php生成zip压缩包
Apr 21 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 代码优化之经典示例
2011/03/24 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
javascript实现日历效果
2019/06/17 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
利用python实现数据分析
2017/01/11 Python
Flask框架信号用法实例分析
2018/07/24 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python创建学生管理系统
2019/11/22 Python
Python如何合并多个字典或映射
2020/07/24 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
如何提高JDBC的性能
2013/04/30 面试题
安全生产承诺书范文
2014/05/22 职场文书
银行进社区活动总结
2014/07/07 职场文书
在职员工证明书
2014/09/19 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS