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 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
tp5修改(实现即点即改)
Oct 18 PHP
laravel框架与其他框架的详细对比
Oct 23 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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
WINXP下apache+php4+mysql
2006/11/25 PHP
URL Rewrite的设置方法
2007/01/02 PHP
zend framework多模块多布局配置
2011/02/26 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
python用match()函数爬数据方法详解
2019/07/23 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
英文自荐信格式
2013/11/28 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
物业品质提升方案
2014/06/08 职场文书
营运督导岗位职责
2015/04/10 职场文书
项目验收申请报告
2015/05/15 职场文书
民事申诉状范本
2015/05/20 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
七个Python必备的GUI库
2021/04/27 Python
MySQL空间数据存储及函数
2021/09/25 MySQL
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript