JavaWeb_(Jar)使用fastjson解析json和序列化对象
菜鸟教程 传送门
JSON官网 传送门
fastjson插件下载 传送门
序列化【百度百科】:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象
反序列化:反序列化从序列化的表示形式中提取数据,并直接设置对象状态
持久化【百度百科】:持久化是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)
简单数据解析json和序列化对象

package com.Gary.util; import com.Gary.model.Goods;
import com.alibaba.fastjson.JSON; public class GaryJson {
public static void main(String[] args) { //序列化 持久化
Goods goods = new Goods("香蕉","这是香蕉",100,400);
String json = JSON.toJSONString(goods);
System.out.println(json); //反序列化 解析
String s = "{\"des\":\"这是香蕉\",\"inventory\":400,\"name\":\"香蕉\",\"price\":100}";
Goods goods2 = JSON.parseObject(s, Goods.class);
System.out.println(goods2.getName());
System.out.println(goods2.getDes());
System.out.println(goods2.getPrice());
System.out.println(goods2.getInventory());
}
}
GaryJson.java
通常境况下json数据都会直接获取,复制粘贴json数据时,可通过@""方法
解析字符串时可@""方法将代码copy进" "中编辑器会自动添加"\"及"\r"符
复杂数据解析json和序列化对象
解析JSON数组对象时候需要存在一个对象集合去保存

[
{
"name":"Gary1",
"age":10,
"sex":"man"
},
{
"name":"Gary2",
"age":20,
"sex":"man"
},
{
"name":"Gary3",
"age":30,
"sex":"women"
}
]
需要解析的json
package com.Gary.util;
import java.util.List;
import com.alibaba.fastjson.JSON;
public class GaryJson {
public static void main(String[] args) {
String s = "[\r\n" +
"{\r\n" +
" \"name\":\"Gary1\",\r\n" +
" \"age\":10,\r\n" +
" \"sex\":\"man\"\r\n" +
"},\r\n" +
"{\r\n" +
" \"name\":\"Gary2\",\r\n" +
" \"age\":20,\r\n" +
" \"sex\":\"man\"\r\n" +
"},\r\n" +
"{\r\n" +
" \"name\":\"Gary3\",\r\n" +
" \"age\":30,\r\n" +
" \"sex\":\"women\"\r\n" +
"}\r\n" +
"]";
List<User> list = JSON.parseArray(s,(User.class));
for(User u : list) {
System.out.println(u);
}
}
}
GaryJson.java
package com.Gary.util;
public class User {
private String name;
private String sex;
private int age;
public User(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
//重写toString方法方便观察
@Override
public String toString() {
return "User [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
User.java
需要解释的JSON对象
{
"name":"Gary1",
"age":10,
"sex":"man"
}
存在一个类要和JSON对象属性保持一致
private String name;
private String sex;
private int age;
通过fastjson.JSON解析JSON数据
List<User> list = JSON.parseArray(s,(User.class));
for(User u : list) {
System.out.println(u);
}
JavaWeb_(Jar)使用fastjson解析json和序列化对象的更多相关文章
- FastJson解析Json,封装JavaBean对象
获取到前端的Json,后台对应封装JavaBean对象,对其解析赋值 获取到前端的json,对其进行分析 1.获取最外层前端json对应得JavaBean (1)未分析格式的json串 (2)初步格式 ...
- Spring Boot返回json数据及完美使用FastJson解析Json数据
Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...
- fastjson解析json数组
1.fastjson解析json数组(直接上代码) import java.util.ArrayList; import java.util.List; import com.alibaba.fast ...
- Scala中使用fastJson 解析json字符串
Scala中使用fastJson 解析json字符串 添加依赖 2.解析json字符 2.1可以通过JSON中的parseObject方法,把json字符转转换为一个JSONObject对象 2.2然 ...
- FastJSON解析Json字符串(反序列化为List、Map)
在日常开发与数据库打交道的时候,常有以Json格式的字符串存储到数据库的情况,当在Java程序中获取到对应的Json格式的String字符串后,如何才能转换为我们想要的数据格式(比如转换成Java中的 ...
- 利用fastjson解析json并通过js&ajax实现页面的无跳转刷新
1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一 ...
- 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】
[原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...
- TypeError: datetime.datetime(2016, 9, 25, 21, 12, 19, 135649) is not JSON serializable解决办法(json无法序列化对象的解决办法)
1.一个简单的方法来修补json模块,这样序列将支持日期时间. import json import datetime json.JSONEncoder.default = lambda self, ...
- Json互相序列化对象
using System.ServiceModel; using System.ServiceModel.Web; using System.Runtime.Serialization.Json; u ...
随机推荐
- HYSBZ 1797 Mincut 最小割
Descrption A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤i≤M)条道路连接了vi,ui两个中转站,那么中转站vi可以通过该道路到达ui中转站, ...
- 前端html+css标签简介(可能就我自己看的懂-。-)
标签集合 # html 文字标签:修改样式 -<font></font> -属性:size:大小,范围1-7,大于7时默认7 color:颜色,英文单词或者十六进制(editp ...
- HTML(上)
目录 HTML(上) 浏览器 HTML 什么是HTML HTML的作用 编写HTML的规范 HTML结构 HTML常用标签 HTML标签速记 HTML(上) 浏览器 浏览器也是一个客户端 #这是一个服 ...
- linux安装git服务器和svn服务器
linux版本 linux版本为CentOS 6.8 (要注意有些软件的安装方法在各个linux版本之间也是存在差异的) git服务器 git服务器需要提供一个UI供开发人员创建项目管理项目,选择使用 ...
- JS中的事件传播流程
JS中的事件传播流程 1,Javascript与HTML之间的交互是通过事件实现的. 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 可以使用侦听器来预定事件,以便事件发生时执行相应代码. 2 ...
- python cv2截取不规则区域图片
知识掌握 cv2.threshold()函数: 设置固定级别的阈值应用于多通道矩阵,将灰度图像变换二值图像,或去除指定级别的噪声,或过滤掉过小或者过大的像素点. Python: cv2.thresho ...
- js 重要函数
1. Array.some some() 方法用于检测数组中的元素是否满足指定条件(函数提供) 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测.如果没有满足条件的元素,则返 ...
- jquery做的滑动按钮开关
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 韦东山嵌入式Linux学习笔记07--Nandflash
常用的flash有两种, Norflash和Nandflash, 前几年市场上的产品比较常见的方案时Norflash和Nandflash搭配使用, 因为norflash比较昂贵,相同的容量norfla ...
- 牛客练习赛47 E DongDong数颜色 (树状数组维护区间元素种类数)
链接:https://ac.nowcoder.com/acm/contest/904/E 来源:牛客网 DongDong数颜色 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 5242 ...