JSON学习笔记
Posted 大黄的Java笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON学习笔记相关的知识,希望对你有一定的参考价值。
什么是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.支持自定义接口自己完成解析/生成过程.
以上是关于JSON学习笔记的主要内容,如果未能解决你的问题,请参考以下文章