阿里巴巴fastjson的使用
一、项目结构
一个学生类。当中学生类中能够包括Course类对象
使用Maven管理项目的能够加入fastjson的坐标:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.4</version>
</dependency>
二、数据对象转化为Json字符串
GenerateJson.java代码标识转化为json字符串
(1)将学生对象转化为json,当中学生中包括Course对象
@Test
public void testSimpleJSON(){
Student stu = new Student("xuliugen", "nan", "123123", "100");
Course course = new Course("JAVA", "xiaobin", "100");
stu.setCourse(course);
String json = JSON.toJSONString(stu);
System.out.println(json);
}
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
}
(2)将一个单独的实体对象转化为json
@Test
public void testListJSON(){
JSONTest jt1 = new JSONTest("xuliugen", "nan");
JSONTest jt2 = new JSONTest("xieyan", "nv");
List<JSONTest> li = new ArrayList<JSONTest>();
li.add(jt1);
li.add(jt2);
String jsonstr = JSON.toJSONString(li);
System.out.println(jsonstr);
}
[{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]
(3)将包括多个相似于(1)中的实体对象转化为json
@Test
public void testMulJSON(){
Student stu = new Student("xuliugen", "nan", "123123", "100");
Course course = new Course("JAVA", "xiaobin", "100");
stu.setCourse(course);
Student stu2 = new Student("xieyan", "nan", "123123", "100");
Course course2 = new Course("music", "qwe", "100");
stu2.setCourse(course2);
List<Student> stuList = new ArrayList<Student>();
stuList.add(stu);
stuList.add(stu2);
String json2 = JSON.toJSONString(stuList);
System.out.println(json2);
}
[
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
},
{
"course":{
"coursename":"music",
"coursescore":"100",
"courseteacher":"qwe"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xieyan"
}
]
三、解析json数据到实体对象
(1)解析上述(1)中学生中包括Course的对象
[{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]
@Test
public void testParseSimpleJSON(){
String json = "[{\"name\":\"xuliugen\",\"sex\":\"nan\"},{\"name\":\"xieyan\",\"sex\":\"nv\"}]";
JSONArray jsonArray = JSON.parseArray(json);
String str = jsonArray.getString(0);
JSONTest jsonTest = JSON.parseObject(str,JSONTest.class);
System.out.println(jsonTest.getSex());
}
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
}
(2)因为仅仅有一个对象,解析例如以下:
@Test
public void testParseStudentIncludeCourseJSON() {
String json = "{\"course\":{\"coursename\":\"JAVA\",\"coursescore\":\"100\",\"courseteacher\":\"xiaobin\"},\"password\":\"123123\",\"score\":\"100\",\"sex\":\"nan\",\"username\":\"xuliugen\"}";
Student stu = JSON.parseObject(json,Student.class);
System.out.println(stu.getPassword());
}
(3)将上述中的(3)当有多个上述的对象的时候,解析例如以下:
[
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
},
{
"course":{
"coursename":"music",
"coursescore":"100",
"courseteacher":"qwe"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xieyan"
}
]
解析例如以下:
@Test
public void testParseListStudentIncludeCourseJSON() {
String json = "[{\"course\":{\"coursename\":\"JAVA\",\"coursescore\":\"100\",\"courseteacher\":\"xiaobin\"},\"password\":\"123123\",\"score\":\"100\",\"sex\":\"nan\",\"username\":\"xuliugen123\"},{\"course\":{\"coursename\":\"music\",\"coursescore\":\"100\",\"courseteacher\":\"qwe\"},\"password\":\"123123\",\"score\":\"100\",\"sex\":\"nan\",\"username\":\"xieyan\"}]";
JSONArray jsonArray = JSON.parseArray(json);
String str = jsonArray.getString(0);
Student stu = JSON.parseObject(str, Student.class);
System.out.println(stu.getUsername());
}
阿里巴巴fastjson的使用的更多相关文章
- 阿里巴巴fastJson
FastJson解析 一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java ...
- SpringBoot阿里巴巴Fastjson的一些常用配置
SpringBoot阿里巴巴Fastjson的一些常用配置 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { F ...
- 阿里巴巴FastJSON使用实例
1. 什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Ja ...
- 阿里巴巴fastjson 包的使用解析json数据
Fastjson是一个Java语言编写的高性能功能完善的JSON库.由阿里巴巴公司团队开发的. 主要特性主要体现在以下几个方面: 1.高性能 fastjson采用独创的算法,将parse的速度提升到极 ...
- 阿里巴巴fastjson源码阅读(待完成)
git地址:https://github.com/alibaba/fastjson.git
- 阿里巴巴fastJson进行json数据解析
1.生成JsonObject:将Java bean转换成易于处理和传输的strig的key value形式. 2.解析JsonObject:将收到的字符串转换成JsonObejct这种对象形式,Jso ...
- Java的Json解析包FastJson使用
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...
- Android 中的Json解析工具fastjson 、序列化、反序列化
Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...
- JSON 之FastJson解析
http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html 一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具 ...
随机推荐
- ByteUtils
package sort.bing.com; import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import j ...
- Trie&可持久化Trie
WARNING:以下代码未经测试,若发现错误,欢迎指出qwq~ Trie树(字典树) 一种简单的数据结构,可存储大量字符串,可在$O(len)$的时间内完成插入,删除,查找等操作. 下面是一个简单的例 ...
- asp.net 前后台数据交互方式(转)
https://blog.csdn.net/luckyrass/article/details/38758007 一.前台直接输出后台传递的数据 后台代码: // .aspx.cs public st ...
- liunx中安装禅道
本文转自:https://www.cnblogs.com/bendouyao/p/10026746.html 一.准备工作 禅道安装包ZenTaoPMS.8.1.3.zbox_64.gz,上传至服务器 ...
- C# 解决ListView控件显示数据出现闪屏的问题
一.发现问题 如果发送数据过快的情况下,ListVies滚屏显示数据时会显示闪屏,如下所示现象: 二.解决问题 根据出现闪屏的情况,在网上查了资料要使用双缓存的办法来处理.其原理是数据在缓存区中进行处 ...
- Spring学习总结(6)——Spring之核心容器bean
一.Bean的基础知识 1.在xml配置文件中,bean的标识(id 和 name) id:指定在benafactory中管理该bean的唯一的标识.name可用来唯一标识bean 或给bean起别名 ...
- 可执行EXE在windows调用过程
举例图中, 一个C#编写的测试程序, 输出两句话分别 : Hello, GoodBye, 介绍其在windows上CLR的调用过程. 1.在执行Main方法之前, CLR会检测出Main的代码引用的所 ...
- Log4j.properties 属性详解以及 LOG4J日志级别详解
转自:https://blog.csdn.net/lovely0903jpp/article/details/82261607 假如项目的生产环境上增加请求以及响应信息的打印,这个时候,对于新手来说, ...
- Myeclipse的默认工作区间怎么恢复提示框?
好久一直使用默认工作空间.现在,回过头来想让那个提示框回来. 该如何做呢? 1.找到我们的myeclipse安装目录下的 2.false是关闭. 3.改成true 4.同时,新增新的工作区间和之前旧的 ...
- VUE错误记录 - 品牌后台练习 search(); 数组 splice forEach push 箭头函数
methods:{ add(){ var car = { id: this.id, name: this.name, ctime: new Date()}; this.list.push(car); ...