JSON是什么

JavaScript Object Notation(JavaScript 对象表示),是一种存储和交换文本信息的语法,它独立程序语言,是轻量级的文本数据交换格式,比XML更小、更快,更易解析,JS原生支持JSON解析

语法

包括了{对象}[数组],二者可以互相嵌套

  • 字符串用 “ ” 包裹,其余就不用(数字,布尔值,null)

  • 对象类似于键值对,键不能重复,对象用 { } 包裹,键值之间用 : 间隔,并且各值之间用 , 隔开

  • 数组废话类似于数组了,值之间用 ,间隔

{
"name": "Howl",
"nickname": "Howlet"
} ["name", "Howl", "Howlshit"] {
"name": "Howl",
"nickname": "Howlet",
"array": ["firstname", "lastname"],
"complex": [{
"java": "good"
}, {
"php": "bad"
}]
}

客户端方法

  • JSON.parse(String str) 把服务器传过来的JSON字符串转化成JavaScript对象
  • JSON.stringify(Object oj) 把JavaScript对象转换成JSON字符串

JavaBean转化JSON

Java中并没有内置JSON的解析类所以要借助第三方类库,这里使用阿里巴巴的 FastJson

FastJson方法

JSON.toJSONString(Object)						//JavaBean转化成JSON
JSON.parseObject(jsonObject,Object.class) //JSON转化成JavaBean

JavaBean

public class User {

	private int id;
private String email;
private String password; public User(int id, String email, String password) {
super();
this.id = id;
this.email = email;
this.password = password;
} //FastJson操作基于Getters和Setters,不能不写,这里为了省地方去掉了
}

main

public static void main(String[] args) {

	//创建JavaBean对象
User user1 = new User(20, "1210911104@qq.com", "Howl"); //JavaBean对象转成json对象
String jsonObject = JSON.toJSONString(user1);
System.out.println("JavaBean对象转成json对象" + "-------------" + jsonObject + "\n"); //json对象转成JavaBean对象
User user2 = JSON.parseObject(jsonObject, User.class);
System.out.println("json对象转成JavaBean对象" + "-------------" + user2.getId() + "--" + user2.getEmail() + "--" + user2.getPassword());
}

输出

JavaBean对象转成json对象-------------{"email":"1210911104@qq.com","id":20,"password":"Howl"}

json对象转成JavaBean对象-------------20--1210911104@qq.com--Howl

补充

尴尬的是FastJson经常性爆出漏洞,而且Springboot集成了JackJson,那么就贴下其代码把

// Springboot自带JackJson
Object object = new Object();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(object);
Object o = mapper.readValue(json,object.getClass());

简单JSON的更多相关文章

  1. iOS开发——数据解析Swift篇&简单json数据处理

    简单json数据处理 //loadWeather var url = NSURL(string: "http://www.weather.com.cn/adat/sk/101240701.h ...

  2. 简单json 转换为 map、对象

    1.如果转换的是Map.或者是简单的对象 package com.gc.action; import java.util.Map; import net.sf.json.JSONObject; /** ...

  3. Android与Struts2简单json通信

    具体要求是: 服务器端得到客户端传递来的数据,并返回给客户端一条json格式的字符串 闲话不多说,直接上代码 首先是服务器端代码:建立一个web工程,导入struts2和json的jar包,并在web ...

  4. 简单json语句转化为map保存

    主要用到了 net.sf.json.JSONObject类 需要用到的jar包 : jar包下载地址 package test; import java.io.BufferedReader; impo ...

  5. 一个简单json数据提交实例

    1.客户端编程:jsp页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  6. 简单Json序列化和反序列化

    序列化是什么: 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得.序列化分为两大部分:序列化和反序列化.序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络 ...

  7. 【Newtonsoft.Json.dll】操作简单JSON数据

    { //json数据 string json = "{\"name\":\"张三\",\"sex\":\"男\" ...

  8. oracle split 以及 简单json解析存储过程

    BEGIN; 由于之前工作上需要在oracle中做split功能以及json格分解.然后经过一番google和优化整合,最后整理到一个存储过程包中,易于管理,代码如下: 1.包定义: CREATE O ...

  9. javascript入门 之 ztree(三 简单json数据)

    <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - Standard Data </TITLE& ...

随机推荐

  1. Github 上的个人项目开源心得

    原文链接 https://elfgzp.cn/2019/12/09/gortal-site-project 由于最近在 Github 发了一个个人开源项目 - 「gortal」一个使用 Go 语言开发 ...

  2. golang ---rune与byte

    golang内置类型有rune类型和byte类型. rune类型的底层类型是int32类型,而byte类型的底层类型是int8类型,这决定了rune能比byte表达更多的数. 在unicode中,一个 ...

  3. -Shell 命令行工具 Cmder Babun Zsh MD

    目录 目录 Cmder:window 下增强型的 cmd + bash 简介 配置 解决中文乱码问题 添加到右键菜单 添加至环境变量 修改命令提示符号 自定义aliases Readme.md 设置c ...

  4. 【LeetCode】48. Rotate Image

    Difficulty:medium  More:[目录]LeetCode Java实现 Description https://leetcode.com/problems/rotate-image/ ...

  5. 基准测试工具:Wrk初识

    最近和同事聊起常用的一些压测工具,谈到了Apache ab.阿里云的PTS.Jmeter.Locust以及wrk各自的一些优缺点和适用的场景类型. 这篇博客,简单介绍下HTTP基准测试工具wrk的基本 ...

  6. SQL Server的外键必须引用的是主键或者唯一键(转载)

    问: In SQL Server , I got this error -> "There are no primary or candidate keys in the refere ...

  7. setsockopt()函数使用

    closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket BOOL bReuseaddr=TRUE; setsockopt (s,SOL_SOCKET ,SO ...

  8. Android中自定义环形图2

    如图: 自定义属性,在values文件夹下创建 attrs.xml <?xml version="1.0" encoding="utf-8"?> & ...

  9. mysql 的逻辑架构 与 存储引擎的介绍

    mysql 的逻辑架构分为三层: 最上层的服务大多数基于网络的客户端.服务器的工具或者服务都有类似的架构,比如连接处理,授权认证.安全等 第二层架构:mysql的核心服务功能都在这一层,包括查询解析, ...

  10. jmeter使用小结

    写这篇短文主要想详细介绍一下jmeter中取样器.逻辑控制器.前置处理器.后置处理器.定时器.配置元件等,可能看起来比较繁杂,其实里面很多操作是类似的,一篇总结和记录的博客: jmeter官方用户手册 ...