优雅性感之 JSON 小姐姐

在这里插入图片描述
阅读文本大概需要 3.0 分钟。

我们都知道,在实际项目的开发中肯定是少不了要与优雅的 JSON 小姐姐打交道的,想要完全与这么优雅漂亮又性感大方的 JSON 小姐姐擦肩而过,这是不存在的。

因为最近也一直在跟 JSON 小姐姐打交道,深深被小姐姐的优雅所吸引,所以特此做个总结。


1、什么是 JSON


定义

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

流行原因

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

存储方式

采用 key value 的存方式,左边存储的是 key 值,右边是相对应的 value。

样例

在这里插入图片描述


2、标准的 JSON 数据表示


数据结构之 Object

在这里插入图片描述

使用花括号 {} 包含的键值对结构,Key 必须是 string 类型,value 为任何的基本类型或数据结构。

数据结构之 Array

在这里插入图片描述

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

基本类型

string

number 没有 int、float、double 等类型,统一使用 number 类型

true

false

null

在这里插入图片描述

【注意】从上图中我们可以看到 JSON 是不支持像平时在代码中写注释那样的,如果实在是要注释,可以采用曲线救国的方法,比如上图添加一个 comment 属性来表示这是一个注释。


3、JSON 的使用


使用 JSONObject 构建 JSON

在这里插入图片描述

通过 HashMap 构建 JSON

在这里插入图片描述

使用 Java Bean 构建对象

在这里插入图片描述

首先,我们可以根据业务需求先创建一个 Java Bean,比如有个 Java Bean 叫 WangleXiaoEr,里面有关于上述王小二相关信息的属性和访问器等等。

PS  除了上面三种方法构建 JSON 之外,其实还有其他方法也一样可以,比如我们也可以通过 StringBuffer 或者是 StringBuilder 等方式来构建(拼接) JSON 串,这里就不一一赘述了。但是比较建议的是通过 Java Bean 构建 JSON,因为可以更好地复用,但也有缺点,就是解析地时候缺少相应的 JSONObject、JSONArray 等的支持。


4、JSON 地解析


假设有一个类 ReadJSONSample,其根路径下有一个 wangxiaoer.json 文件,里面存放着 JSON 信息,则解析其中相对应的 JSON 信息如下:

在这里插入图片描述

其中,对于一般的类型只需要通过 JSONObject 的对象类解析读取即可,但是对于 JSON 串中的数组类型而言,因为 JSONObject 在设计的时候存在一点漏洞,不支持 JSON 中相应的数组类型的直接读取,所以需要做一点特殊地转换处理才能获取到相应的信息。步骤如下:

先转换成 JSONArray 类型

在这里插入图片描述

遍历数组读取其中相应元素

在这里插入图片描述

不过有一点需要注意的是,当我们在读取文件的时候有可能不存在要读取的属性,这时候要怎么办呢?其实 JSONObject 中提供了相应的方法来处理,此时可以通过 JSONObject 特有的方法 isNull() 来判断是否有相应的属性,增加程序的健壮性。

在这里插入图片描述


特别声明:
本文始发于我的同名公众号 : 樱木天亥
欢迎转载,转载请注明出处
https://www.jianshu.com/p/1227c3055457

欢迎扫码关注我的公众号「蜗牛永动机」,回复 1024 免费获取 5G 编程学习资源~

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值