com.alibaba.fastjson和net.sf.json的区别
JSON有两种结构
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
一、使用fastjson
1、到mvn(https://mvnrepository.com)库中引入
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
2、使用fastjson api
public static final Object parse(String text); // 把JSON字符串parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON字符串parse成JSONObject,注意的是,json字符串与json对象是不一样的 public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON字符串parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON字符串parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> 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.sanyouhome.json;
import java.util.List;
class Hobby{
private Long itemId;
private String itemName;
public Long getItemId() {
return itemId;
}
public void setItemId(Long itemId) {
this.itemId = itemId;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
}
public class Boss {
private Long id;
private String name;
private List<Hobby> hobby;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Hobby> getHobby() {
return hobby;
}
public void setHobby(List<Hobby> hobby) {
this.hobby = hobby;
}
@Override
public String toString() {
return "Boss{" +
"id=" + id +
", name='" + name + '\'' +
", hobby=" + hobby +
'}';
}
}
测试方法
//定义json字符串
String jsonStr = "{\"id\":\"10\",\"name\":\"chrchr\",\"hobby\":[{\"itemId\":\"20\",\"itemName\":\"篮球\"},{\"itemId\":\"21\",\"itemName\":\"游泳\"}]}"; //将json字符串转成json对象,parseObject
JSONObject jsonObject = JSON.parseObject(jsonStr);
//System.out.println(jsonObject.toString()); //将json对象转成java对象,toJavaObject,参数1【json对象】,参数2 【javaBean】
Boss boss1 = JSON.toJavaObject(jsonObject, Boss.class);
//System.out.println(boss1.toString()); //将json字符串转成java对象,parseObject,参数1【json字符串】,参数2【javaBean】
Boss boss2 = JSON.parseObject(jsonStr, Boss.class);
//System.out.println(boss2.toString()); Boss boss3 = new Boss();
boss3.setId(1L);
boss3.setName("chrchr");
Hobby hobby = new Hobby();
hobby.setItemId(30L);
hobby.setItemName("lanqiu");
ArrayList<Hobby> hobbies = new ArrayList<>();
hobbies.add(hobby);
boss3.setHobby(hobbies); //将java对象转成json对象,toJSONString
JSONObject o = (JSONObject) JSON.toJSON(boss3);
//System.out.println(o); //将java对象转成json字符串,toJSONString
String s = JSONObject.toJSONString(boss3);
//System.out.println(s); //将java对象转成json字符串,toJSONString
String s1 = new JSONObject().toJSONString(boss3); //获取json对象中的某值,getString
String name = jsonObject.getString("name");
System.out.println(name);
其中JSONObject是继承了JSON实现了Map<String, Object>,并且都是使用的Map中的方法。可以说JSONObject相当于Map<String, Object>
JSONObject extends JSON implements Map<String, Object>
JSONArray是继承了JSON实现List<Object>,并且都是使用的List中的方法。可以说JSONArray相当于List<Object>
JSONArray extends JSON implements List<Object>
3、使用net.sf.json.JSONObject
//json字符串、java对象、map转成JSONObject对象
JSONObject.fromObject(hashMap)
//json对象转换成java对象,并获取java对象属性 JSONObject.toBean(jsonStu, Student.class); jsonObj.toString()
//json数组字符串、list集合转成JSONArray数组类型对象
JSONArray.fromObject(arrayList)
com.alibaba.fastjson和net.sf.json的区别的更多相关文章
- fastjson与net.sf.json区别
在现在的开发当中,绝大多数引用阿里巴巴的fastjson.当然net.sf.json同样可以使用. 一.引入net.sf.json包 首先用net.sf.json包,当然你要导入很多包来支持commo ...
- net.sf.json日期类型格式化输出
net.sf.json 日期类型格式化输出 Date, Timestamp ; 编写工具类 package cn.jorcen.commons.util; import java.text.DateF ...
- 全解史上最快的JOSN解析库 - alibaba Fastjson
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换 ...
- alibaba fastjson常见问题FAQ
English | 中文 1. 怎么获得fastjson? 你可以通过如下地方下载fastjson: maven中央仓库: http://central.maven.org/maven2/com/al ...
- Json和Map互转,四个包(org.json/net.sf.json/com.google.gson/com.alibaba.fastjson)
目前使用的(org.json/net.sf.json/com.google.gson/com.alibaba.fastjson)这四种json-map互转,其他的以后在补充.............. ...
- net.sf.json.JSONOBJECT.fromObject 与 com.alibaba.fastjson.JSONObject.parseObject
文章待补充,先写写以下知识点好了. NULL值处理之 net.sf.json.JSONObject 和 com.alibaba.fastjson.JSONObject区别 JSON作为一个轻量级的文本 ...
- net.sf.json和com.alibaba.fastjson两种json加工类的相关使用方法
com.alibaba.fastjson Fastjson是一个Java语言编写的高性能功能完善的JSON库.它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Jav ...
- net.sf.json与fastjson两种jar包的使用
首先说清楚:这两种方式是进行json解析的两种不同的方式而已,哪一种都可以. 一.引入net.sf.json包 首先用net.sf.json包,当然你要导入很多包来支持commons-beanutil ...
- 不同Json工具对空串和NULL的序列号处理:net.sf.json 和 fastjson
目录 1.测试代码 2.测试结果: 3.总结: 4.注:Maven中引入net.sf.json的方式 net.sf.json 和 fastjson 对于空串和NULL的处理: 1.测试代码 packa ...
随机推荐
- Delphi7 - Server Monitor开发并实现指定端口定时刷新、重启和邮件提醒等功能
项目背景 近期,总经办邮件反馈考勤数据频繁丢失,请IT排查其根本原因,并提供整改措施. 措不及防,这个项目当初并不是IT主导的,是设备部采购,然后协同软件供应商直接安装.部署和调试的,IT只是提供几个 ...
- tp5引用第三方类vendor或extend(多种方法)
extend 方法一:命名空间引入 我们只需要把自己的类库包目录放入EXTEND_PATH目录(默认为extend,可配置),就可以自动注册对应的命名空间,例如: 我们在extend目录下面新增一个l ...
- CarbonData:大数据融合数仓新一代引擎
[摘要] CarbonData将存储和计算逻辑分离,通过索引技术让存储和计算物理上更接近,提升CPU和IO效率,实现超高性能的大数据分析.以CarbonData为融合数仓的大数据解决方案,为金融转型打 ...
- 机器学习-Python 01
机器学习中最常用最流行的语言工具现阶段应该是Python, 这篇文章主要介绍一些常用的Python语法知识.本篇博文适合那些有其他语言基础的程序员们,如果一点基础都没有,我建议先跳过.博主以前是做移动 ...
- luogu P2812 校园网络【[USACO]Network of Schools加强版】|Tarjan
题目背景 浙江省的几所OI强校的神犇发明了一种人工智能,可以AC任何题目,所以他们决定建立一个网络来共享这个软件.但是由于他们脑力劳动过多导致全身无力身体被♂掏♂空,他们来找你帮助他们. 题目描述 共 ...
- openstack网络(三)
openstack网络架构 Neutron中的基本网络元素 插件扩展功能 ML2Modular Layer 2 plugin Neutron架构图 参考资料 openstack网络架构 Neutron ...
- solr集群与项目实战
什么是 SolrCloud : SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时 ...
- String and Arrays
Description 有一个N*N的字符矩阵,从上到下依次记为第1行,第2行,--,第N行,从左至右依次记为第1列,第2列,--,第N列. 对于这个矩阵会进行一系列操作,但这些操作只有两类: ...
- 常见Python爬虫框架你会几个?
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:三名狂客 正文 注意:如果你Python技术学的不够好,可以点击下方链接 ...
- ARTS-S ISO C
一些简称 ANSI: American National Standards Institute. ANSI是the International Organization for Standardiz ...