json知识点总结(一)--基础介绍
前言
JSON是一种轻量化的数据编码方式它不依赖于编程语言是独立的文本格式。和xml相比JSON具有格式简洁,转译速度快的特点,因此现在被广泛使用。JSON的本质是字符串,采用了特定的分隔方式对字符串进行分隔。
一、JSON的语法
JSON对象语法有对象、数组和二者混合等方式。
JSON对象的属性储存类似于键值对的存储方式,用“{}”来分隔对象,采用的是“:”分隔变量名称和值,对于JAVA来说变量名称和值都必须用” ”修饰否则会报错。各变量之间用“,”分隔,注意最后一个变量不能加“,”。
实例如下:
{"name":"张曼玉","number":"YT1995","address":"上海"}
2、数组语法
JSON数组之间使用“[]”来分隔,数组元素间用“,”隔开。元素类型可以为任意类型
实例如下:
["768547","456","124","545"]
3、混合使用
混合使用则是将对象和数组混合使用,同时还可以嵌套使用。
示意如下:
{"name":"[]","number":"YT1995","address":"上海"}
二、json的转化功能的使用
1.导入jar文件
目前常用的JSON转化工具有谷歌的Gson和阿里的fastjson,这两的工具都是jar文件,使用时将下载的jar文件导入项目中既可以使用jar进行转换。
2.jar中的转换功能的使用
1、Gson中进行数据转换
类到字符串:1创建Gson对象,2创建类对象,3调用toJson方法将类对象转化成字符串
package Demo;
import com.google.gson.Gson;
public class Demo2 {
public static void main(String[] args) {
Gson g=new Gson();//创建Gson对象
Student s=new Student("张曼玉","YT1995","上海");//创建学生对象
String s1 = g.toJson(s);//将学生对象转化为字符串
System.out.println(s1);
}
}
字符串到类:1创建Gson对象,2.调用fromJson方法转化字符串
package Demo;
import com.google.gson.Gson;
public class Demo1 {
public static void main(String[] args) {
Gson g=new Gson();
String data="{\"name\":\"张曼玉\",\"number\":\"YT1995\",\"address\":\"上海\"}";
Student s1 = g.fromJson(data, Student.class);//将字符串转化为对象
System.out.println(s1);
}
}
2、fastjson中进行数据转换
类到字符串:与Gson不同的是fastjson不需要创建Gson对象而是直接调用方法将类转化为字符串;而且打印出的对象顺序也与Gson不同。
package Demo;
import com.alibaba.fastjson.JSON;
public class Demo3 {
public static void main(String[] args) {
//{"name":"张曼玉","number":"YT1995","address":"上海"}
//{"address":"河南","name":"柳岩","number":"hn1314"}
Student s1=new Student("柳岩","hn1314","河南");//创建学生类
String s = JSON.toJSONString(s1);//将学生类转化为字符串
System.out.println(s);
}
}
字符串到类:同样也不需创建对象而是直接调用JSON.parseObject方法实现字符串到类的转化
package Demo;
import com.alibaba.fastjson.JSON;
import java.util.List;
public class Demo4 {
public static void main(String[] args) {
String data="{\"address\":\"河南\",\"name\":\"柳岩\",\"number\":\"hn1314\"}";
Student s1 = JSON.parseObject(data, Student.class);//将字符串转化为类
System.out.println(s1);
}
}
json知识点总结(一)--基础介绍的更多相关文章
- Java最重要的21个技术点和知识点之JAVA基础
(一)Java最重要的21个技术点和知识点之JAVA基础 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Ja ...
- Node.js学习笔记(一)基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- Node.js 基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- 剑指Offer——知识点储备-Java基础
剑指Offer--知识点储备-Java基础 网址来源: http://www.nowcoder.com/discuss/5949?type=0&order=0&pos=4&pa ...
- laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)
laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...
- Jmeter元件——JSON Extractor后置处理器介绍2
在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- C++ 迭代器 基础介绍
C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...
- 剑指Offer——知识点储备-网络基础
剑指Offer--知识点储备-网络基础 计算机网络 http和https的区别 (1)http是http协议运行在tcp之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份. (2)htt ...
随机推荐
- Solution -「十二省联考2019」春节十二响
题目 题意简述 link. 给一棵 \(n\) 个结点的有根树,点带权.把点分为若干组,并要求同组内不存在任何祖先-后代关系.最小化每组内的最大点权之和. 数据规模 \(n\le2\tim ...
- Solution -「CF 802C」Heidi and Library (hard)
\(\mathcal{Descriptoin}\) Link. 你有一个容量为 \(k\) 的空书架,现在共有 \(n\) 个请求,每个请求给定一本书 \(a_i\).如果你的书架里没有这本书 ...
- 多端开发之uniapp开发app
最近在给f做一些工具app,学习了不少关于uniapp编写android应用的知识. 首先,App应用的创建的时候要选择项目类型为uniapp类型.最开始我选择的是h5+项目,这种项目就比较容易写成纯 ...
- NeurIPS 2017 | TernGrad: Ternary Gradients to Reduce Communication in Distributed Deep Learning
在深度神经网络的分布式训练中,梯度和参数同步时的网络开销是一个瓶颈.本文提出了一个名为TernGrad梯度量化的方法,通过将梯度三值化为\({-1, 0, 1}\)来减少通信量.此外,本文还使用逐层三 ...
- C# StopWatch程序性能_时间计时器
StopWatch 时间计数器简介: Stopwatch 可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用S ...
- Oracle之集合运算
交集 INTERSECT :取两个查询结果集的共有部分 SELECT DEPTNO FROM EMP INTERSECT SELECT DEPTNO FROM DEPT; 补集 MINUS :用第 ...
- eclipse gradle创建java项目
参考: https://blog.csdn.net/weixin_33733810/article/details/92438913 一 : 需要在 https://gradle.org/releas ...
- 分布式系统下的CAP定理
本文参考EricBrewer博客加上自己的理解整理. CAP定理又被成为布鲁尔定理,是加州大学计算机科学家埃里克·布鲁尔提出来的猜想,后来被证明成为分布式计算领域公认的定理. CAP定义,在高并发的场 ...
- (第一章第六部分)TensorFlow框架之实现线性回归小案例
系列博客链接: (一)TensorFlow框架介绍:https://www.cnblogs.com/kongweisi/p/11038395.html (二)TensorFlow框架之图与Tensor ...
- 国产化之虚拟ARM64-CPU安装银河麒麟操作系统
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器.我本地没有这个国产的处理器,但飞腾是基于ARMv8架构的64位处理器,所以理论上基于这个CPU架构的硬件应 ...