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 ...
随机推荐
- 《PHP程序员面试笔试宝典》——如何回答算法设计问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中的很多算法设计问题,都是历年来各家企业的"炒现饭",不管求职者以前对算法知识掌握得是否扎 ...
- Solution -「CCO 2019」「洛谷 P5532」Sirtet
\(\mathcal{Description}\) Link. 在一个 \(n\times m\) 的网格图中,每个格子上是空白 . 或沙子 #,四联通的沙子会连成一个整体.令此时所有沙子块同 ...
- Solution -「CF 1119F」Niyaz and Small Degrees
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个结点的树,边有边权,对于每个整数 \(x\in[0,n)\),求出最少的删边代价使得任意结点度数不超过 ...
- 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...
- 数据缓存Cache
在MyBatis - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中有关于Mybatis中Cache技术实现及应用介绍.Cache技术实现都是implements Cache ...
- 从.net开发做到云原生运维(零)——序
1. 为什么要写这个系列的文章 大家看到标题的时候肯定会感觉到困惑,这个标题里的两件事物好像并不是很搭.说到.net开发大家一般都会想到asp.net做网站,或者是wpf和winform这类桌面开发, ...
- 基于node的tcp客户端和服务端的简单通信
1.简单介绍下TCP/IP TCP/IP是互联网相关协议的集合,分为以下四层:应用层.传输层.网络层.数据链路层. 分成四层的好处是,假如只有一层,某个地方需要改变设计时,就必须把所有整体替换掉,而分 ...
- netty系列之:channelPipeline详解
目录 简介 ChannelPipeline 事件传递 DefaultChannelPipeline 总结 简介 我们在介绍channel的时候提到过,几乎channel中所有的实现都是通过channe ...
- NSSCTF-[SWPU 2019]Network
下载附件打开之后发现是和ascii比较像,但是尝试解码发现不是ascii,然后这里问了一下大佬然后又翻了一下自己的笔记,最后发现是TTL,这里直接上脚本, import binascii with o ...
- owasp中国
http://www.owasp.org.cn/OWASP-CHINA/owasp-project/owasp53415927969079c198ce9669-owasp_top_10_privacy ...