前言

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. 搭建 NFS 服务 & 实时同步

    今日内容 NFS简介 实现 NFS 文件同步功能 NFS 配置详解 统一用户 搭建 web 服务 NFS 实现文件共享 内容详细 1.NFS 简介 1.1 介绍 实现多台 web 服务器可以共享数据资 ...

  2. Python基础—名称空间(Day10)

    一.名称空间和作用域 1.全局名称空间(名称空间.命名空间): py文件运行时代码从上之下依次执行,看到一个变量就会将这个变量与对应值的内存地址的关系存到名称空间里,代码要运行时(print时)从名称 ...

  3. 从零开始, 开发一个 Web Office 套件(4):新的问题—— z-index

    <从零开始, 开发一个 Web Office 套件>系列博客目录 这是一个系列博客, 最终目的是要做一个基于HTML Canvas 的, 类似于微软 Office 的 Web Office ...

  4. 2021顶级的开源 BI(商业智能)软件和报表工具

    在这个信息化时代,每分每秒都产生海量数据.在海量数据中,挖掘出有用的数据,并且能以较人性化.直观的方式展示这些数据,变得尤为重要.本文将介绍5款顶级开源 BI(商务智能)软件和报表工具,用于商业数据的 ...

  5. Ubuntu 18.04 安装配置LAMP

    --作者:飞翔的小胖猪 --创建时间:2021年5月29日 --修改时间:2021年5月29日 一.准备 1.1 环境 操作系统:Ubuntu 18.04 网页引擎:Apache php版本:7.4 ...

  6. oj教程--排序算法(Java)

    import java.util.ArrayList; import java.util.List; /** * 排序算法主类 * * @author eric */ class SortArray ...

  7. Activity的创建及生命周期

  8. Java中的单利模式

    单利模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创 ...

  9. linux作业--第五周

    1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...

  10. php 23种设计模型 - 代理模式

    代理模式(Proxy) 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式. 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口. 介 ...