JSON数据格式分析 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

JSON数据格式分析

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:30

1、JSON介绍


       JSON是一种数据构造比较简单,轻量级的,易于存储的数据构造情势。很便利人的浏览,也便利机械的编写和解析。
       JSON是一种完全自力于文本说话的文本构造,我们既可以在js代码中写json数据,也能在java、php等说话中应用这种文本情势。

2、JSON构造分析


       JSON只有两种数据构造模型:数组和对象。数组常用的表示是JSONArray,对象常用的表示是JSONObject。
       JSON的存储结构成取的是键值对的情势表示的,熟悉JAVA开辟的人应当很清跋扈,是实际上是map的存储方法,一个key对应一个value。当然,在不合说话中,可能懂得方法上会有不合的差别,的数据构造中可能被懂得为数据字典,C中可能被懂得为构造体等数据类型。关于这个,等下我们会举例解释。

3、JSON数据举例


       可能有的人对json数据情势并不熟悉,这里给出一个json数据的示例,这是大年夜一段代码中朝长进步出来的内容,可能大年夜家看起来会认为很奇怪,然则这是一个完全的json格式的字符串,包含了json定义的两中数据格式,数组和对象:
{
"id": "20150104A000SB00",
"thumbnails_qqnews": [
"http://inews.gtimg.com/newsapp_ls/0/34260782_150110/0"
],
"thumbnails": [
"http://inews.gtimg.com/newsapp_ls/0/34260782_150110/0"
],
"articletype": "0",
"timestamp": 1420373100,
"time": "2015-01-04 20:05:00",
"commentid": "1074737367",
"url": "http://view.inews.qq.com/a/20150104A000SB00",
"title": "武媚娘传奇→武大年夜头传奇",
"tag": [ ],
"abstract": "汉子在年青的时刻都欲望能拥有一个花枝飘扬,外表光鲜亮丽的那种女人。可是跟着岁月的沉淀,尤其是当他有了本身的一番事业和丰富的人生经历时,就会发明本身当初的设法主意是多么竽暌棺稚,因为,一个根本就不敷!",
"author": [ ],
"chlid": "1796",
"origUrl": "http://m.pengfu.com/content/1127642/",
"show_expr": 1,
"flag": "0",
"picShowType": 0,
"chlname": "捧腹网",
"chlmrk": "精选搞笑图片,无节操、有内涵、巨险恶、神答复,看点多,笑点多!",
"chlsicon": "http://pnewsapp.tc.qq.com/newsapp_ls/0/om_407743_100100/0",
"chlicon": "http://pnewsapp.tc.qq.com/newsapp_ls/0/om_407743_100100/0",
"source": "捧腹网",
"wechat": "pengfuwang001",
"PlacementId": "9079537218569440795",
"SubAdOn": 0,
"commentPlacementId": "",
"openAdsComment": 0
}

4、解析方法


       在不合的说话中,可能有不合的解析方法,这里我们只评论辩论在Android情况中的解析方法,与java中是一致的。
       前面我们说过,JSON是采取的map集合情势的封装,是键值对的情势,那么我们在掏出数据的时刻,就会采取get办法,如下两句代码:
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject msgJsonObject = jsonObject.getJSONObject("msg");
这两句代码的意思是说,我们将获得的json字符串,实例化成为一个json对象,然后在这个json对象中,获取获得msg这个对象。
JSONArray temp = product.getJSONArray("photos");
int length = temp.length();
for (int i = 0; i < length; i++) {
	String msg = temp.optString(i);
	imgList.add(msg);
}
这段代码的意思是大年夜product这个json对象中,获得一个名为photos的json数组对象,然后将之存储在一个集合中。
product.getString("title")
这一句代码就比较简单轻易懂得了,意思是获取一个title的对象,而这个对象是一个String类型的对象。

5、总结


        在膳绫擎的json解析中,我们只是简单的采取了一些比较重要的代码片段,并没有完全的┞饭示若何解析一段代码,这里有两个问题须要留意:
(1)、在处理json字符串的时刻,须要处理一个异常,名为JSONException,平日是json的数据格式纰谬或者数据不完全。
(2)、在获取json字符串中的值的时刻,如不雅试用get获取,可能会出现该字符串不存在而导致报错的情况,可以试用opt获取,代码如下:
product.optString("title")
然则这里会出现一个问题,那就是如不雅没有title这个字符串对象,这句话也是不会报错的,然则法度榜样的履行结不雅却不是我们预期那样的。

相关案例查看更多