菜鸟教程  传送门

  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和序列化对象的更多相关文章

  1. FastJson解析Json,封装JavaBean对象

    获取到前端的Json,后台对应封装JavaBean对象,对其解析赋值 获取到前端的json,对其进行分析 1.获取最外层前端json对应得JavaBean (1)未分析格式的json串 (2)初步格式 ...

  2. Spring Boot返回json数据及完美使用FastJson解析Json数据

     Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...

  3. fastjson解析json数组

    1.fastjson解析json数组(直接上代码) import java.util.ArrayList; import java.util.List; import com.alibaba.fast ...

  4. Scala中使用fastJson 解析json字符串

    Scala中使用fastJson 解析json字符串 添加依赖 2.解析json字符 2.1可以通过JSON中的parseObject方法,把json字符转转换为一个JSONObject对象 2.2然 ...

  5. FastJSON解析Json字符串(反序列化为List、Map)

    在日常开发与数据库打交道的时候,常有以Json格式的字符串存储到数据库的情况,当在Java程序中获取到对应的Json格式的String字符串后,如何才能转换为我们想要的数据格式(比如转换成Java中的 ...

  6. 利用fastjson解析json并通过js&ajax实现页面的无跳转刷新

    1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一 ...

  7. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  8. 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, ...

  9. Json互相序列化对象

    using System.ServiceModel; using System.ServiceModel.Web; using System.Runtime.Serialization.Json; u ...

随机推荐

  1. 从入门到自闭之Python自定义模块

    自定义模块 定义:一个文件就是一个模块(能被调用的文件,模块就是一个工具箱,工具就是函数) 作用: 将代码文家化管理,提高可读性,避免重复代码 拿来就用(避免重复造轮子),python中类库比较多,提 ...

  2. 简单的shell练习

    1.判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否者显示”/etc/inittab is a small file.”# ...

  3. Spring 自定义注解,结合AOP,配置简单日志注解 (转)

    java在jdk1.5中引入了注解,spring框架也正好把java注解发挥得淋漓尽致. 下面会讲解Spring中自定义注解的简单流程,其中会涉及到spring框架中的AOP(面向切面编程)相关概念. ...

  4. 导出excel-模版

    后台代码 public void ToExcel(){ //第一步:获取模版文件物理路径 string file_0 = Server.MapPath("/Content/Excel/Exp ...

  5. C# 面向对象6 之前的复习

    复习练习 THIS:调用当前类的构造函数

  6. 关于redis的几件小事(六)redis的持久化

    1.redis持久化的意义 redis持久化的意义,在于 故障恢复 . 如果没有对数据进行持久化,那么如果redis遇到灾难性的故障,就会丢失所有的数据. 如果通过redis的持久化机制将数据持久化到 ...

  7. 【Activiti】为每一个流程绑定相应的业务对象的2种方法

    方式1: 在保存每一个流程实例时,设置多个流程变量,通过多个流程变量的组合来过滤筛选符合该组合条件的流程实例,以后在需要查询对应业务对象所对应的流程实例时,只需查询包含该流程变量的值的流程实例即可. ...

  8. DES加密解密 MD5加密解密

    #region MD5 加密 /// <summary> /// MD5加密静态方法 /// </summary> /// <param name="Encry ...

  9. composer入门教程

    初始化项目 使用composer初始化工作目录,在项目的根目录命令行输入 composer init 安装项目 在composer.json文件所在目录命令行下执行如下命令 php composer. ...

  10. PAT Basic 1017 A除以B (20 分)

    本题要求计算 /,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: 输入在一行中依次给出 A 和 B,中间以 1 ...