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 相关文章推荐
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
php中几种常见安全设置详解
Apr 06 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
PHP解压ZIP文件到指定文件夹的方法
Nov 17 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
PHP JWT初识及其简单示例
Oct 10 PHP
php微信公众号开发之图片回复
Oct 20 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
Laravel登录失败次数限制的实现方法
Aug 26 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
解析php file_exists无效的解决办法
2013/06/26 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
php格式文件打开的四种方法
2018/02/24 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python合并同类型excel表格的方法
2018/04/01 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python dict 相同key 合并value的实例
2019/01/21 Python
在python中做正态性检验示例
2019/12/09 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
介绍一下linux的文件权限
2014/07/20 面试题
客服部班长工作责任制
2014/02/25 职场文书
导师评语大全
2014/04/26 职场文书
难忘的一天教学反思
2014/04/30 职场文书
化学专业自荐信
2014/05/28 职场文书
鲁迅故里导游词
2015/02/05 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
Python字典的基础操作
2021/11/01 Python
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
Nginx HTTP跳转至HTTPS
2022/05/15 Servers