JSON数据的格式和解析(使用GSON)入门

本文是为初学者准备的JSON数据解析入门指南,主要介绍了JSON的基本格式和使用GSON在Java中解析JSON数据的方法。通过实例展示了如何建立与JSON数据对应的类,以及如何进行JSON数据与对象的转化。文章强调了数据结构与类结构的一致性,并提供了简单的示例代码。
摘要由CSDN通过智能技术生成

序:本文的读者对象可以是第一次接触Json数据并且想用Gson来简单实现Json数据的解析(Json数据可以转化成对象,对象亦可转化成Json数据)的新手,也可以是已有工作经验并不吝赐教的前辈。如果你是苦苦寻找更好地技术,正如本文标题所言,这篇文章可能不适合你。希望本篇能为新手们带来“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”的发现,也能为有经验的前辈们带来那时年少的感觉。衷心希望你是耐心地愉快地读完本文!

0 偶遇JSON

{
    “flag”:”00”,
    “message”:”传感器”,
    “property“:{“voltage”:”10V”,
               “current”:”5A”},
    “sensors”:[{“Date”:”time”,
             ”id”:”1527”}],
 }

在这里还可见到更多的他:
http://www.tlink.io/web/developer-documentation-all.htm?type=1#api_1

1 认识JSON格式

    JSON数据本质上是一种字符串,不过这个字符串有其特定的格式,一种分层形式的格式。最基本(最内层)的格式是键值对模型(如果不明白的话可以看看本文后面的附1,也可以在网上搜索相关内容,不过即使现在不清楚也不用着急,这不影响你理解JSON的数据形式),只是键需要被双引号包围,如:”Name0”:”lixiaobing0”,其中Name0为键,lixiaobing0为值,键和值都是自己定义的。这就是基本形式,为了下面的叙述的方便,以自己定义的符号base-type来代替”Name0”:”lixiaobing0”这个基本形式,这种代替是为了更方便地了解到JSON数据的全貌。于是细心的我们会看到,一个JSON数据里可以不止一个基本形式,可以有许多个,不过这些个基本形式之间要以逗号(,)分隔的,比如:base-type,base-type,┅。

    如果将视野放得开阔点就会看到,这些基本形式可以被花括符{}或者中括号[]包围,如:{base-type}或者[base-type]。当然也可以被{}和[]同时包围,如:[{base-type}],但同时也要注意到,[{base-type}]形式里也可以有多个{base-type}形式,这些个{base type}形式之间以逗号(,)分隔,如:[{base-type},{base-type},{base type},┅],这和一个JSON数据里有多个基本形式是一样的。

    通常,我们称被{}包围的数据为一个对象,被[]包围的数据我们成为数组,有一点要明白,不同对象的键都是一样的,不同的只是值,正如不同的人有不同性格爱好以及身高体重罢了。好了,我们跳出符号[]的限制,来到[]的外边看看,我们又会惊奇的发现这样的形式,”my_Array”:[{base-type},{base-type},{base type},┅],和这样的形式,”Object”:{base-type,base-type,┅},确实挺有意思,细细一看这不正和基本形式保持了一致吗。于是,用符号Array[]来代替”my_Array”:[{base-type},{base-type},{base-type},┅],用符号Object{}来代替”Object”:{base-type,base-type,┅}后,我们就看到了最外层的情况是这样的{ Object{},Array[],base-type}。

    最外层的{}符号不能少,并且符号{} 里的Array[]、base-type和Object{}的数量都是任意的,可以为零,也可很多,也没什么顺序,更重要的是,Array[]和Object{}可以相互融合,做到你中有我,我中有你,即:Array[Object{}],Object{Array[]},这也被称为嵌套,嵌套可以多层,就像你的镜里有我的镜,我的镜里有你,镜里的还是镜,如此反复映射,不过嵌套多少层,映射多少次,当然这些都要视具体情况而定。注意到了吗,视具体情况而定,毕竟数据要用在某个场合里,至于如何用JSON数据这个问题将在后面JSON数据解析的部分讲解,这里还得举举JSON数据格式的例子,让我们具体感受一下JSON的魅力。

    我会从简单到复杂,从单层到多层的顺序来举例子,因为这样也是符合人接受新事物的顺序。这些例子我是站在最基本形式的角度来阐述的,你也可以把自己当做最基本的形式,这样就可以经历一次有趣的旅程了。

1.1 最简洁的JSON数据(我也称为孤单的基本形式)
{”Name0”:”lixiaobing0”}
1.2 不再孤单的基本形式
{
    ”Name0”:”lixiaobing0”
    ”Name1”:”lixiaobing1”,
    ”Name2”:”lixiaobing2”,
     ... ...
}
1.3 从未见过的新伙伴age_Array
{
    ”age_Array”:[{”Age0”:”beautiful_24”}],
    ”Name0”:”lixiaobing0”
    ”Name1”:”lixiaobing1”,
    ”Name2”:”lixiaobing2”,
    ... ...
}
1.4 新伙伴不止秀一面
{
    ”age_Array”:[{”Age0”:”beautiful_24”,
                  ”Age1”:”terrible_24”,
                  ”Age2”:”wonderful_24”,
                   ... ...}],
    ”Name0”:”lixiaobing0”
    ”Name1”:”lixiaobing1”,
    ”Name2”:”lix
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值