数据解析框架之FastJson
演示实体类
import java.util.List;
public class Student {
public String name;
public int age;
public List<String> score;
}
JSON.toJSONString方法的使用
JSON.toJSONString(Object object)方法 :
方法定义 : public static final String toJSONString(Object object) ;
方法作用 : 将 java bean 转为 json 字符串;
方法位置 : String com.alibaba.fastjson.JSON.toJSONString(Object object) ;
参数介绍 : Object object -> 要转换的实体类对象;
JSON.toJSONString(Object object, boolean prettyFormat)方法 :
方法定义 : public static final String toJSONString(Object object, boolean prettyFormat) ;
方法作用 : 将java bean 转为json字符串,并将json字符串格式化;
方法位置 : String com.alibaba.fastjson.JSON.toJSONString(Object object, boolean prettyFormat) ;
参数介绍 : Object object要转换的实体类对象, boolean prettyFormat是否将 json 字符串格式化 如果 false 与 上面的方法作用相同;
演示代码:
Student student = new Student();
student.age = 18;
student.name = "张三";
ArrayList<String> list = new ArrayList<>();
list.add("90");
list.add("20");
list.add("50");
student.score = list;
String s1 = JSON.toJSONString(student);
System.out.println("json字符串数据 : " + s1);
String s2 = JSON.toJSONString(student,true);
System.out.println("json字符串格式化数据: " + s2);
打印输出:

JSON.toJSON 方法的使用
JSON.toJSON(Object javaObject) 方法
方法定义 : public static final Object toJSON(Object javaObject) ;
方法作用 : 将 java bean 对象转为 JSONObject 对象, 或者将 集合 转为 JSONArray 对象;
方法位置 : Object com.alibaba.fastjson.JSON.toJSON(Object javaObject) ;
参数介绍 : Object javaObject:java bean 对象 或者 集合;
关键代码解析 :
-- Java Bean 转 JSONObject : JSONObject object = (JSONObject)
JSON.toJSON(student_s);
-- Java 集合 转 JSONArray : JSONArray array = (JSONArray)
JSON.toJSON(students);
JSONOject 和 JSONArray 打印 : 这两种对象 打印本身, toString() 以及
toJSONString() 都是相同的结果, 详见下面的示例;
Student student = new Student();
student.age = 18;
student.name = "张三";
ArrayList<String> list = new ArrayList<>();
list.add("90");
list.add("20");
list.add("50");
student.score = list;
ArrayList<Student> list2 = new ArrayList<>();
list2.add(student);
JSONObject object = (JSONObject )JSON.toJSON(student);
System.out.println("object"+object.toString());
JSONArray jsonArray = (JSONArray) JSON.toJSON(list2);
System.out.println("jsonArray"+jsonArray.toString());
打印结果:

注意:JSONArray和JSONObject导包一定要导入的是alibaba下的包
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
JSON.parseObject方法的使用
JSONObject
parseObject(String text) 方法 :
方法定义 : public static final JSONObject parseObject(String text);
方法作用 : 将 json 字符串类型转化为 JSONObject 对象;
方法位置 : JSONObject com.alibaba.fastjson.JSON.parseObject(String text);
参数介绍 : String text:json 字符串;
<T> T parseObject(String text, Class<T> clazz) 方法
:
方法定义 : public static final <T> T parseObject(String text,
Class<T> clazz);
方法作用 : 将 json 字符串转为指定类型的 java bean 对象;
方法位置 : <T> T com.alibaba.fastjson.JSON.parseObject(String text,
Class<T> clazz);
参数介绍 : String text :json 字符串, Class<T> clazz :要转化的 java bean 对象类型;
String json_student = "{'score':['90','20','50'],'age':18,'name':'张三'}";
JSONObject object = JSON.parseObject(json_student);
System.out.println("object:" + object);
Student student = JSON.parseObject(json_student, Student.class);
System.out.println("name=" + student.name + "age=" + student.age);
输出结果:


JSON.parse 方法
Object parse(String text) 方法简介
方法定义 : public static final Object parse(String text);
方法作用 : 将 json 字符串转为 JSONObject 或者 JSONArray 对象;
方法位置 : Object com.alibaba.fastjson.JSON.parse(String text);
参数介绍 : String text :json 字符串;
String json_student = "{'score':['90','20','50'],'age':18,'name':'张三'}";
//将 json 字符串转为 JSONObect 对象
JSONObject object = (JSONObject) JSON.parse(json_student);
//打印 JSONObject 对象
System.out.println(object);
//将 json 字符串 转为 JSONArray 对象
ArrayList<String> json_array = new ArrayList<>();
json_array.add(json_student);
JSONArray array = (JSONArray) JSON.parse(String.valueOf(json_array));
//打印 JSONArray 对象
System.out.println(array);
打印结果输出:

JSONObject 方法
获取 JSONObject 中元素 : 获取 String 就调用 jsonObject.getString("key"), 获取 boolean 调用 jsonObject.getBoolean("key"), 同理还可以获取其它类型的数据;
向 JSONObject 中添加元素 : object.put("action", "fuck");
向 JSONObject 中添加多个元素 : 将一个 Map 集合添加到 JSONObject 中, Map 集合的键必须是 String 类型;
移除 JSONObject 中的属性 : jsonObject.remove("key"), 参数是 键;
获取 JSONObject 中元素个数 : jsonObject.size();
//创建对象
JSONObject jsonObject = new JSONObject();
//向 JSONObject 中添加元素
jsonObject.put("name","张三");
jsonObject.put("age",18);
//获取 JSONObject 中元素
Boolean isOpen = jsonObject.getBoolean("isOpen");
String name = jsonObject.getString("name");
Map<String, String> map = new HashMap<>();
map.put("home", "American");
map.put("school", "harvard");
// 向 JSONObject 中添加多个元素
jsonObject.putAll(map);
//移除 JSONObject 中的属性
jsonObject.remove("name") ;
//获取 JSONObject 中元素个数size
int size = jsonObject.size();
数据解析框架之FastJson的更多相关文章
- 数据解析框架之Gson
GSON是由Google提供的,用于JAVA对象与JSON字符串之间互相转换的一个解决方案.用处很多,比如在前后台通讯中,前台先将java对象转化成JSON,然后将JSON传输给后台交由后台处理——相 ...
- 十七、springboot配置FastJson为Spring Boot默认JSON解析框架
前提 springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用 1.引入fastjson依赖库: maven: <dependen ...
- Spring Boot返回json数据及完美使用FastJson解析Json数据
Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...
- springboot使用fastJson作为json解析框架
springboot使用fastJson作为json解析框架 springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用 〇.搭建spri ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...
- iOS边练边学--AFNetWorking框架GET、Post、Download、Upload,数据解析模式以及监控联网状态
一.AFNETWorking简单使用 get请求 get请求,以后经常用NSURLSession底层的写的部分 简单的post请求 用post请求下载文件,方法很多,还可以通过upload任务来执行 ...
- Android Multimedia框架总结(八)Stagefright框架之AwesomePlayer及数据解析器
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼:http://blog.csdn.net/hejjunlin/article/details/52503057 前言:前面一篇分析了medi ...
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 场景模拟 接上一篇, JD SKU对应的店铺信息是异步加载 ...
- 02 . Go框架之Gin框架从入门到熟悉(数据解析和绑定,渲染,重定向,同步异步,中间件)
数据解析和绑定 json数据解析和绑定 package main import ( "github.com/gin-gonic/gin" "net/http" ...
随机推荐
- mysql调优——数据包大小限制max_allowed_packet
mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES ...
- 2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)
2019ICPC南京网络赛A题 The beautiful values of the palace https://nanti.jisuanke.com/t/41298 Here is a squa ...
- 内嵌tomcat快速入门
1.依赖 <!--Java语言操作tomcat --> <dependency> <groupId>org.apache.tomcat.embed</grou ...
- Android异常与性能优化相关面试问题-ui卡顿面试问题详解
UI卡顿原理: “60fps(Frames Per Second每秒传输帧数) ----> 16ms” 针对上面标红的数字,下面具体说明一下:最主要的根源在于渲染性,Android会每隔16ms ...
- LeetCode02 - 两数相加(Java 实现)
LeetCode02 - 两数相加(Java 实现) 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers 题目描述 ...
- IntelliJ IDEA导包快捷键
IntelliJ IDEA导包快捷键 Alt+Enter
- UVa540 Team Queue(队列queue)
队列 STL队列定义在头文件<queue>中, 用“ queue<int>s ” 方式定义, 用push()和pop()进行元素的入队和出队操作, front()取队首元素(但 ...
- 项目管理工具!DevExpress Winforms Gantt控件 v19.2强势来袭
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...
- 关于div的水平垂直居中
水平垂直居中 一.未知宽高 1. table布局(display:table) 2. 转化为行内标签display:inline-block,借助另外一个标签高度来实现 3. 绝对布局(positio ...
- 4、路由事件 RoutedEvent
路由事件的类型:具体参考https://www.cnblogs.com/jellochen/p/3475754.html Tunnel隧道方式:路由事件使用隧道策略,以便事件实例通过树向下路由(从根到 ...