暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JSON学习笔记

大黄的Java笔记 2020-09-05
246


什么是JSON


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


优点


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



样例






标准的JSON数据表示



数据结构-object

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

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





数据结构-Array

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


基本类型

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

string.number、true、false、null 

举例:



JSON的使用方法


1、使用JSONObject构建JSON



2、使用HashHMap来构建JSON



3、使用Java Bean来创建对象

首先创建一个JavaBean



注入属性




4、从文件中读取JSON

首先创建一个.json的文件



解析JSON

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

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







解析JSON如何判空

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

jsonObject.isNull("name");




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

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

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


JSON总结: 

三种方法;

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

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

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



JSON扩展-GSON




GSON简介——

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

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


使用GSON来生成JSON


步骤1:添加依赖

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


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


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


 


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

GsonBuilder gsonBuilder=new GsonBuilder():

gsonBuilder.setPrettyPrinting() 使打印出来的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.支持自定义接口自己完成解析/生成过程.




文章转载自大黄的Java笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论