菜鸟教程  传送门

  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. linux yum安装过程终止方法

    //中断当前的安装显示 ctrl+z //查找当前yum相关的进程 ps -ef | grep yum //杀掉进程 进程号(pid)

  2. GitHub从小白到熟悉<四>

    GitHub issue 使用教程 创建 一个issue  (显示所有bug 或者 说 交流的 问题列表)

  3. TCP三次握手与四次挥手详解(最全面)

    目录 TCP的三次握手与四次挥手 TCP报文段的首部格式 TCP的工作原理 TCP 的流量控制 TCP的拥塞控制 拥塞控制与流量控制的关系 拥塞控制所起的作用 慢开始和拥塞避免 慢开始算法的原理 三次 ...

  4. 异常-throw的概述以及和throws的区别

    package cn.itcast_06; /* * throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. * * throws和throw的区别(面试题) thr ...

  5. ubuntu 安装vim报错

    问题:ubuntu18.04默认没有安装vim,使用 sudo apt install 提示 错误信息: 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: vim : 依赖: vim ...

  6. 应对Hadoop集群数据疯长,这里祭出了4个治理对策!

    一.背景 在目前规模比较大的互联网公司中,总数据量能达到10PB甚至几十PB数据量的公司,我认为中国已经有超过了20家了.而在这些公司中,也有很多家公司的 日数据增长达到100TB+ 了. 所以我们每 ...

  7. Android官方网站!

    Android官方网站,所有Android相关文档.官方工具.示例,全部都在上面!! http://www.android.com/

  8. QQ恶搞 - 让艾特你的人语无伦次

    效果图: 实现过程: 代码: ‮ 将上面的代码复制添加到你的群名片后面即可. 原理解析: 这个代码是一个Unicode控制字符 - RLO,它可以控制在它后面的所有文本都已倒序的方式显示.在qq群艾特 ...

  9. kafka核心原理总结

    新霸哥发现在新的技术发展时代,消息中间件也越来越受重视,很多的企业在招聘的过程中着重强调能够熟练使用消息中间件,所有做为一个软件开发爱好者,新霸哥在此提醒广大的软件开发朋友有时间多学习. 消息中间件利 ...

  10. deep_learning_Function_tf.add()、tf.subtract()、tf.multiply()、tf.div()

    tf.add().tf.subtract().tf.multiply().tf.div()函数介绍和示例 1. tf.add() 释义:加法操作 示例: x = tf.constant(2, dtyp ...