前言

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知识点总结(一)--基础介绍的更多相关文章

  1. Java最重要的21个技术点和知识点之JAVA基础

     (一)Java最重要的21个技术点和知识点之JAVA基础  写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Ja ...

  2. Node.js学习笔记(一)基础介绍

    什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...

  3. Node.js 基础介绍

    什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...

  4. 剑指Offer——知识点储备-Java基础

    剑指Offer--知识点储备-Java基础 网址来源: http://www.nowcoder.com/discuss/5949?type=0&order=0&pos=4&pa ...

  5. laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)

    laravel基础课程---1.laravel安装及基础介绍(laravel如何安装) 一.总结 一句话总结: [修改composer镜像地址].[明确laravel的安装要求].[安装指定版本的la ...

  6. Jmeter元件——JSON Extractor后置处理器介绍2

    在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...

  7. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  8. C++ 迭代器 基础介绍

    C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...

  9. 剑指Offer——知识点储备-网络基础

    剑指Offer--知识点储备-网络基础 计算机网络 http和https的区别 (1)http是http协议运行在tcp之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份. (2)htt ...

随机推荐

  1. 1、Golang基础--Go简介、环境搭建、变量、常量与iota、函数与函数高级

    1 Go语言介绍 1 golang-->Go--->谷歌公司 2009年 golang:指go语言,指的go的sdk goland:软件,ide:集成开发环境 Java写的 2 Go是静态 ...

  2. 超详细的Cookie增删改查

    目录 1,什么是 Cookie? 1.1,存储形式 1.2,常用属性 1.3,大小限制 2,增 or 改Cookie 3,查Cookie 4,删Cookie 1,什么是 Cookie? Cookie是 ...

  3. 6.Flink实时项目之业务数据分流

    在上一篇文章中,我们已经获取到了业务数据的输出流,分别是dim层维度数据的输出流,及dwd层事实数据的输出流,接下来我们要做的就是把这些输出流分别再流向对应的数据介质中,dim层流向hbase中,dw ...

  4. Asp.Net Core: Swagger 与 Identity Server 4

    Swagger不用多说,可以自动生成Web Api的接口文档和客户端调用代码,方便开发人员进行测试.通常我们只需要几行代码就可以实现这个功能: ... builder.Services.AddSwag ...

  5. ASP.NET Core 6框架揭秘实例演示[08]:配置的基本编程模式

    .NET的配置支持多样化的数据源,我们可以采用内存的变量.环境变量.命令行参数.以及各种格式的配置文件作为配置的数据来源.在对配置系统进行系统介绍之前,我们通过几个简单的实例演示一下如何将具有不同来源 ...

  6. 对称加密算法之DES算法

    数据加密标准(data encryption standard): DES是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位. DES对64位的明文分组进行操作.通过一个初始置换 ...

  7. [Graphviz]一些简单的例子(未完待续)

    本文参考:http://wenku.baidu.com/link?url=kTPIn5tBY4eboEPZeOZyLwHAq-fSMoTbagsqcG5-IcpL325tnnh3ES8aky-PBjP ...

  8. 【C# 基础概念】抽象类、密封类及类成员

    使用 abstract 关键字可以创建不完整且必须在派生类中实现的类和 class 成员. 使用 sealed 关键字可以防止继承以前标记为 virtual 的类或某些类成员. abstract修饰符 ...

  9. Oracle的用户权限和角色

    用户和权限 LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态.锁定的用户无法正常的登录进行数据库操作. --给普通用户SCOTT解锁,同时把SCOTT用户的密码进行修改 --语法结构:ALTE ...

  10. MIPI CSI-2 像素打包格式解析

    背景 MIPI CSI-2支持YUV.RGB和RAW data三种数据格式,这里是个笼统的叫法,具体又根据不同的像素打包方式细分为具体的格式,打包是什么概念?就是把Sensor采样得到的RGB三个通道 ...