首页 >Java >java教程 > 正文

java解析json用什么包

原创2020-09-16 17:54:5101579
工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies, CDL的转换。

这里推荐使用:阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;

推荐课程:Java教程

功能强大,完全支持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());
        }
         
    }
 
}

以上就是java解析json用什么包的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:java
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 是线程?线程和进程有区别?如何在Java中实现线程?Java关键字volatile与synchronized作与区别?有哪些不同的线程生命周期?你对线程优先级的理
    a.hashCode() 有?与 a.equals(b) 有关系?字节流与字符流的区别。java序列化,如何实现java序列化?或者请释Serializable接口的作
    json数据的方法:首先创建JSON文件;然后在类中含“document.h”和“cocos-ext.h”头文件;接着通过FileUtils获得JSON文件路径,并通过Document对象JSON
    本文由java零基础入门栏目为大家推荐,文中详细分栈内存与堆内存,并为大家介绍了二者的区别,希望可以帮助到大家。堆内存于存储Java中的对象和数组,栈内存主要是来执行程序的。
    下面由composer使教程栏目给大家介绍Yii2中对Composer的使,希望对需要的朋友有所帮助!
    在深入研究Node.js之前,你可能想了使跨栈的 JavaScript 有好处,它统一了语言和数据格式(JSON),允许你以最佳的方式重开发人员资源。
    java面试题:释一下MyBatis中命名空间(namespace)的作;MyBatis中的动态SQL是意思;JDBC编程有哪些不足之处,MyBatis是如何决这些问题的。
    一个".java"源文件中是否可以括多个类(不是内部类)?有限制?Java有没有goto?说说&和&&的区别。在JAVA中如何跳出当前的多重嵌套循环?
    我一直对人工智能识别技术非常感兴趣,因为我无法想象这究竟是一种样的算法,样的分过程,,,无论是声音识别、人脸面部识别或其它种识别,人们的外貌、说话的方式都是如此不同,一种图片你可以不同的方式
    返回json“@ResponseBody”注,“@ResponseBody”是作在方法上的,“@ResponseBody”表示该方法的返回结果直接写入“HTTP response body”中。
    本文由java语言入门栏目为大家介绍java中的容器是指,希望可以帮助大家理
    安装应时显示错误是因为下载的安装可能有所损坏,其决办法:首先进入手机的“文件管理”;然后清理掉这个损坏的安装;接着重新下载一遍该APP;最后根据提示按步骤进行安装即可。
    java三大框架是:1、Struts框架,它是一个完美的MVC实现;2、Hibernate框架,它需要你创建一系列的持久化类;3、Spring的作就是完全耦类之间的依赖关系,一个类如果要依赖,那就是一个接口
    java的作是:1、把功能相似或相关的类或接口组织在同一个中,方便类的查找和使;2、可以更好得维护程序结构;3、可以避免因为类名相同造成的冲突;4、也限定了访问权限,拥有访问权限的类才能访问某个中的类
    域名的协议是DNS。DNS(域名协议),即Domain Name Service,于实现网络设备到IP地址映射的网络服务。
    java前端是与户直接交互的部分,括你在浏览网页时接触的所有视觉内容,从字体到颜色,以及下拉菜单和侧边栏,这些视觉内容都是由浏览器、处理、渲染相关HTML、CSS、Javascript文件后呈现而来

    专题推荐

    作者信息
    推荐视频教程
  • 全面解析Java注解全面解析Java注解
  • 阿里巴巴Java开发手册阿里巴巴Java开发手册
  • Java参考文档Java参考文档
  • 最新Java完整视频教程最新Java完整视频教程
  • 视频教程分类