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原理之错误抑制与内嵌HTML分析
May 02 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
PHP中new static() 和 new self() 的区别介绍
Jan 09 PHP
php数组使用规则分析
Feb 27 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
php编程每天必学之验证码
Mar 03 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
一些mootools的学习资源
2010/02/07 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
python3学生名片管理v2.0版
2018/11/29 Python
Django学习之文件上传与下载
2019/10/06 Python
基于python实现雪花算法过程详解
2019/11/16 Python
django在开发中取消外键约束的实现
2020/05/20 Python
python名片管理系统开发
2020/06/18 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
技术总监管理职责范本
2014/03/06 职场文书
实习证明格式范文
2014/10/14 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
红高粱观后感
2015/06/10 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技