JSON学习笔记

Posted 大黄的Java笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON学习笔记相关的知识,希望对你有一定的参考价值。


什么是JSON

JSON学习笔记


JSON学习笔记

json是一种与开发语言无关的、轻量级的数据格式。全称javascript Object Notation.

JSON学习笔记

JSON学习笔记

优点

JSON学习笔记


JSON学习笔记

易于人的阅读和编写,易于程序解析与生产

JSON学习笔记


JSON学习笔记

样例

JSON学习笔记



JSON学习笔记



JSON学习笔记

标准的JSON数据表示

JSON学习笔记



JSON学习笔记

数据结构-object

使用花括号{}包含的键值对结构,Key必须是string类型,value

为任何基本类型或数据结构.

JSON学习笔记



JSON学习笔记


JSON学习笔记

数据结构-Array

使用中括号[]来起始,并用逗号,来分隔元素.

JSON学习笔记

JSON学习笔记


JSON学习笔记

基本类型

5种基本数据类型:其中数值类型统一用 number,不区分整型、实型

string.number、true、false、null 

举例:


JSON学习笔记


JSON学习笔记

JSON的使用方法

JSON学习笔记


JSON学习笔记

1、使用JSONObject构建JSON


JSON学习笔记


JSON学习笔记

2、使用HashHMap来构建JSON

JSON学习笔记



JSON学习笔记

3、使用Java Bean来创建对象

首先创建一个JavaBean


JSON学习笔记


JSON学习笔记

注入属性


JSON学习笔记



JSON学习笔记

4、从文件中读取JSON

首先创建一个.json的文件


JSON学习笔记


JSON学习笔记

解析JSON

pom.xml里添加一个依赖 commons-io 从文件中间读取json内容 // 声明这个文件

File file = new File(ReadJSONSample.class.getResource("/wangxiaoer.json").getFile());



JSON学习笔记





JSON学习笔记

解析JSON如何判空

判断是否存在jsonObject中是否存在某个对象

jsonObject.isNull("name");



JSON学习笔记


JSON学习笔记

从文件读取JSON判断null(增加程序健壮性)

实际开发中读取JSON数据是在WEB环境下(网络上提供的API或者文件中)

如果在读取时,JSON数据中没有指定key,一般需要打印一个日志或者抛出一个异常,这里可以使用JSONObject对象的isNull("key")方法,判断如果没有key值做一些操作。


JSON学习笔记

JSON总结: 

三种方法;

JSONObj wangxiaoer  = new JSONObj(); // 第一种原生的 

Map<String,Obj> wangxiaoer = new HashMap<String,Obj>();  //第二种hashMap 

Diaosi wangxiaoer = new Diaosi()    //第三种 java bean



JSON学习笔记

JSON扩展-GSON

JSON学习笔记




JSON学习笔记

GSON简介——

GSON:开源的第三方工具,可以用来解析JSON数据,相比JSON,功能更全面,性能更出色,使用方式更加便捷。

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来将Java 对象转成一个 JSON 字符串


使用GSON来生成JSON

JSON学习笔记


JSON学习笔记

步骤1:添加依赖

骤2使用JavaBean创建GSON数据,通过GSON的toJson(Bean对象)就可以转换为GSON数据。


GSON:可以使用@SerializedName(“NAME”)改变GSON的key值。

JSON学习笔记


JSON学习笔记

通过Java Bean生成JSON时,JSON默认的生成方式会把所有属性全部生成以便提供value进行输出。可以在定义属性时在修饰符与属性类型中间添加transient关键字,在JSON生成中忽略这个属性避免被暴露给外界。


JSON学习笔记 


JSON学习笔记

GsonBuilder类可以对JSON做一些其他操作,这样使用

GsonBuilder gsonBuilder=new GsonBuilder():

gsonBuilder.setPrettyPrinting() 使打印出来的json 格式化 


JSON学习笔记

JSON学习笔记


JSON学习笔记

使用GSON解析文件

案例:这里将JSON格式数据解析为JavaBean对象,这里使用fromJson(String json,Class type),这样就可以把JSON的数据赋值给JavaBean的属性,如果key值对应不上属性名就置为null。



GSON直接读取json文件并且跟JAVA bean的属性一一对应,到达解析json文件的目的,Gson可以将json文件中的其他类型的数据,比如日期、数组等直接转换成java属性的集合类对象 Gson的优点:(1)支持日期 (2)可以转换为对象 (3)集合操作


关于JSON库的总结

功能:映射Java Object与json格式数据

1.通过Annotation注解来声明.

2.支持自定义属性名称.

3.支持包含或排除属性.

4.支持自定义接口自己完成解析/生成过程.




以上是关于JSON学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

springmvc学习笔记(18)-json数据交互

ajax学习笔记

MySQL 学习笔记 JSON 类型

MySQL 学习笔记 JSON 类型

Newtonsoft.Json(Json.Net)学习笔记

Newtonsoft.Json(Json.Net)学习笔记