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 防恶意刷新实现代码
May 16 PHP
php购物车实现代码
Oct 10 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
PHP开发Apache服务器配置
Jul 15 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
Laravel框架模板继承操作示例
Jun 11 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
php 远程关机操作的代码
2008/12/05 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
jquery获取节点名称
2015/04/26 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
Python基本语法经典教程
2016/03/11 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
python socket 聊天室实例代码详解
2019/11/14 Python
python模拟斗地主发牌
2020/04/22 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
华为python面试题
2016/05/03 面试题
国家奖学金获奖感言
2014/08/16 职场文书
重点工程汇报材料
2014/08/27 职场文书
2014年班主任工作总结
2014/11/08 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
毕业典礼主持词
2015/06/29 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫