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新手上路(二)
Oct 09 PHP
php 分页类 扩展代码
Jun 11 PHP
PHP 替换模板变量实现步骤
Aug 24 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 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计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
linux下php上传文件注意事项
2016/06/11 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
Python 使用with上下文实现计时功能
2018/03/09 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
深入分析python 排序
2020/08/24 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
项目计划书范文
2014/01/09 职场文书
七夕情人节促销方案
2014/06/07 职场文书
体育馆的标语
2014/06/24 职场文书
上课不认真检讨书
2014/09/17 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
大学生党性分析材料
2014/12/19 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python