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 ...
随机推荐
- LeetCode 初次使用 两数之和的训练
首先看到示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 想到,我可以先在nu ...
- 二、redis学习(java操作redis缓存的工具jedis)
- 记一些使用mpvue时遇到的问题
一.在mpvue中使用vuex(和在vue中使用不同) 1.vue中使用vuex,在main.js中: import store from './store' new Vue({ store }) ...
- html/form表单常用属性认识
1.form表单常用属性练习 <style> .form1 { margin: auto; height: 900px; width: 500px; text-align: center; ...
- jquery简单实现表格隔行变色
小知识点:odd的过滤选择器大的使用 html代码: <table> <tr> <td>用户名</td> <td>年龄</td> ...
- python 目录管理与文件管理
目录管理(os) system:执行系统命令 # 执行系统命令 os.system('cls') name:获取操作系统名称 # 操作系统名称,nt代表Windows, posix代表类unix pr ...
- dubbo学习笔记三(全注解)
完全用注解替换掉之前的部分配置文件 项目结构 下面给出服务的的部分代码 [DubboConfiguration] @Configuration @EnableDubbo(scanBasePackage ...
- namenode datanode理解
HDFS是以NameNode和DataNode管理者和工作者模式运行的. NameNode管理着整个HDFS文件系统的元数据.从架构设计上看,元数据大致分成两个层次:Name ...
- win10 安装ubuntu16.04双系统
安装了两天的ubuntu系统,很是头疼,发现网上的内容,比较繁杂,因此,写此博客,进行综合整理,总结了安装方法.方便大家安装,减少搜索. 电脑是老师的电脑,配置为: 主板:微星 CPU:英特尔i5 7 ...
- SpringCloud 第一篇:服务的注册和发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...