jsonobject json对象里面_优雅性感之 JSON 小姐姐

7bdb0aefc977ea0bf08e6715d9cee4d8.png

阅读文本大概需要 3.0 分钟。

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

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

1、什么是 JSON

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

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

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

样例

c714bd9ac37653bcc2f68c02074c23d0.png

2、标准的 JSON 数据表示

数据结构之 Object

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

022a80e5ea0d3276c431a95eb1146e52.png

数据结构之 Array

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

acafb8baf3250a21171ad29cfdc0dd20.png

基本类型

  • string

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

  • true

  • false

  • null

a0557c6cfd6e3b799202b170e22756df.png

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

3、JSON 的使用

使用 JSONObject 构建 JSON

887da56c35da8b0097d0ef908c8676d4.png

通过 HashMap 构建 JSON

7da0cc9deb79b130f357402e23f4ec98.png

使用 Java Bean 构建对象

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

21681796392e0fe22dbc93044789eca2.png

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

4、JSON 地解析

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

958ac318531fd3ee9022e4393fbdf103.png

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

先转换成 JSONArray 类型

afa12e34c07c5c92de76701fd1a71e24.png

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

5f28314cb6a6d3b4bc038dd10e83bc60.png

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

7eb4b52532e56c4a07528090e3487325.png

如果觉得文章还不错,请大家点赞分享给你的朋友,TA 可能正需要,你的肯定是对我最大的支持和鼓励。


推荐阅读:

全网最全的编程学习资源,PDF 电子书大合集

日拱一卒,功不唐捐

82c247d46c0a91c4aed605adafa5d9bc.png

长按可以订阅

不是针对谁,我说 在看 的各位,都是神仙❤
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值