优雅性感之 JSON 小姐姐

作者: 樱木天亥 | 来源:发表于2018-10-18 22:24 被阅读15次

我们都知道,在实际项目的开发中肯定是少不了要与优雅的 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

相关文章

网友评论

    本文标题:优雅性感之 JSON 小姐姐

    本文链接:https://www.haomeiwen.com/subject/jzhezftx.html