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.MVC的模板标签系统(五)
Sep 05 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
PHP 身份验证方面的函数
Oct 11 PHP
php学习之运算符相关概念
Jun 09 PHP
php实现的漂亮分页方法
Apr 17 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
PHP接入支付宝接口失效流程详解
Nov 10 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
php array_intersect()函数使用代码
2009/01/14 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
php木马webshell扫描器代码
2012/01/25 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
JavaScript window.location对象
2014/11/14 Javascript
JavaScript错误处理
2015/02/03 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
javascript实现延时显示提示框效果
2017/06/01 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
物业管理员岗位职责范文
2013/11/25 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
企业宗旨标语
2014/06/10 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android
SQL Server删除表中的重复数据
2022/05/25 SQL Server