一、项目结构

一个学生类。当中学生类中能够包括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的使用的更多相关文章

  1. 阿里巴巴fastJson

    FastJson解析 一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java ...

  2. SpringBoot阿里巴巴Fastjson的一些常用配置

    SpringBoot阿里巴巴Fastjson的一些常用配置 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { F ...

  3. 阿里巴巴FastJSON使用实例

      1. 什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Ja ...

  4. 阿里巴巴fastjson 包的使用解析json数据

    Fastjson是一个Java语言编写的高性能功能完善的JSON库.由阿里巴巴公司团队开发的. 主要特性主要体现在以下几个方面: 1.高性能 fastjson采用独创的算法,将parse的速度提升到极 ...

  5. 阿里巴巴fastjson源码阅读(待完成)

    git地址:https://github.com/alibaba/fastjson.git

  6. 阿里巴巴fastJson进行json数据解析

    1.生成JsonObject:将Java bean转换成易于处理和传输的strig的key value形式. 2.解析JsonObject:将收到的字符串转换成JsonObejct这种对象形式,Jso ...

  7. Java的Json解析包FastJson使用

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

  8. Android 中的Json解析工具fastjson 、序列化、反序列化

    Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...

  9. JSON 之FastJson解析

    http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html 一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具 ...

随机推荐

  1. 4.使用 WSDL 指定的标准 SOAP 消息格式

    转自:https://technet.microsoft.com/zh-cn/sysinternals/x2ccke44(v=vs.94) 为 XML 文档(定义 Web 服务)定义架构的行业标准 W ...

  2. 新手前端笔记之--初识css

    css样式表是为了容纳与html文档分离出来的样式属性而产生的,所以她理所当然的包含两个部分:1.样式的表示,使用{属性1:属性值:属性2:属性值:...},2.样式与标签的对应(如何找的对应标签), ...

  3. 005 python 整数类型/字符串类型/列表类型/可变/不可变

    可变/不可变类型 可变类型 ID不变的情况下,值改变,则称之为可变类型,如列表,字典 不可变类型 值改变,ID改变,则称之为不可变类型,如 整数 字符串,元组 整数类型 int 正整数 用途就是记录年 ...

  4. PHP盛宴——经常使用函数集锦

    近期写了蛮多PHP,也接触到挺多经常使用的函数,大多都记了笔记,发个博客出来.共同学习.事实上感觉学习一门语言,语法逻辑是软素养.而对语言的熟悉程度仅仅能随着使用时间的增长而慢慢增长,当对一门语言的函 ...

  5. 2.1 使用eclipse4.4 搭建 maven简单结构项目。

    1.前言 1.本博客面向0基础开发人员. 2.本博客为系列博客.<1.X>系列为服务器数据库相关技术,前几章为简单搭建linux+tomcat+mysql+nginx+redis.< ...

  6. body{display:none}

    body{display:none} 使浏览器不显示内容,用这样的代码删除 $document = str_replace('body{display:none}','',$document);

  7. Shell中反引号(`)与$()用法的区别

    今天有人提问: echo `echo \\\\\\\w` echo $(echo \\\\\\\w) 为什么输出的不一样? 这就引申出了另一个问题:反引号与$()有没有区别? 这是一个非常有意思的问题 ...

  8. 为什么选择Solr?

    在大型的SQL数据库上很难执行高速的查询有Solr是Apache 下的一个开源项目,使用Java基于Lucene开发的全文检索服务: 它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-ser ...

  9. 1.11 Python基础知识 - 序列:元组

    元组(tuple)是一组有序系列,元组和列表是否相似,但是元组是不可变的对象,不能修改.添加或删除元组中的元素,但可以访问元组中的元素 元组的定义: 元组采用圆括号中用逗号分隔的元素 元组的基本操作和 ...

  10. DB2 概览

    2006:IBM公布DB2.9.将数据库领域带入XML时代.IT建设业已进入SOA(Service-Oriented Architecture)时代.实现SOA.其核心难点是顺畅解决不同应用间的数据交 ...