androidjson解析及简单例子转载._第1页
androidjson解析及简单例子转载._第2页
androidjson解析及简单例子转载._第3页
androidjson解析及简单例子转载._第4页
androidjson解析及简单例子转载._第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JSON的定义:种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持,从而可以在不同平台间进行数据交换。JSON采用兼容 性很高的文本格式,同时也具备类似于C语言体系的行为。-Jso JSON Vs XML1.JSON 和 XML的数据可读性基本相同2.JSON 和 XML同样拥有丰富的解析手段3.JSON相对于XML来讲,数据的体积小4.JSON与JavaScri pt的交互更加方便5.JSON对数据的描述性比XML较差6.JSON的速度要远远快于 XMLandroid2.3提供的json

2、解析类an droid的json解析部分都在包org.json下,主要有以下几个类:JSONObject可以看作是一个json对象,这是系统中有关JSON定义的基本单 元,其包含一对儿(Key/Value数值。它对外部(External:应用toString(方法输出的数 值调用的响应体现为一个标准的字符串(例如:"JSON": "Hello, World",最外被大 括号包裹,其中的Key和Value被冒号":"分隔。其对于内部(Internal行为的操作格 式略微,例如:初始化一个JSONObject实例,引用内部的put(方法添

3、加数值:newJSONObject(.put("JSON", "Hello, World!",在 Key 和 Value 之间是 以逗号","分隔。Value 的类型包括:Boolean、JSONArray、JSONObject、Number、String 或者默 认值 JSONObject.NULL object oJSONStringer :json文本构建类,根据官方的解释,这个类可以帮助快速和便捷 的创建JSON texto其最大的优点在于可以减少由于 格式的错误导致程序 异常,引 用这个类可以自动严格按照 JSON语法规则(

4、syntax rules创建JSONtext o每个JSONStri nger实体只能对应创建一个 JSON text。o其最大的优点 在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照 JSON 语法规则(syntax rules创建JSON text。每个JSONStringer实体只能对应创 建一个JSON text。JSONArray :它代表一组有序的数值。 将其转换为String输出(toString所表现 的形式是用方括号包裹,数值以逗号”,分隔(例如:value1,value2,value3,大家可以 亲自利用简短的代码更加直观的了解其格式 。这个类的内部同样具

5、有 查询行为,get和opt(两种方法都可以通过index索引返回指定的数值,put(方法用来添加或者 替换数值。同样这个类的 value类型可以包括:Boolean、JSONArray、 JSONObject、Number、String 或者默认值 JSONObject.NULL object。JSONToke ner :json 解析类JSONExce ption :json中用到的异常JSONObject, JSONArray来构建 json 文本1.2:34.化 '投覺li贬创左一3 M'V l &on < <89.1诂./打狎i日飓蚩iTUH &#

6、176; Rm孑:E "1234 5678-*, "B7G54121" H 常語 亡":-yunzhifeia®". /:"age- : 1, H 歎讷"胡軒“ :(country"':气砒”舁,"province"刁 b /Farl屈":false U 討:|:,忙try12.B-14./JSONObjiect person * new ISONObjectO;/工mpMnp屮-尽儿人叮创V 二*3S0MArrj/ 間one " ntw JSONArray

7、O;phone.put( T2m45五7旷),putcB76543Zi"); personput<"phon社",phore);1 / .仮20.21.24.person. pLjt 'name*, 'ytianzhlf el89"); person * pjt< "age'',>/|;l|i-llJ、弋"疋 1JSONObject address * new JSONObjectO; address.put("country"china");Jddr&#

8、171;$5.put("province", "jiangtu"); person.pLJt< 'address*', addressj: person»pjt''married"> false);26* catch (JSONException ex) /锻为门Ldl或仗川阳on不支捋的数卩格式(N日Nj infinitie5)2B.throw new RuntimeException(ex);getType 和 optType api 的使用getT ype可以将要获取的键的值转换为指定

9、的类型,如果无法转换或没有值则抛出 JSONExce ptionoptType也是将要获取的键的值转换为指定的类型,无法转换或没有值时返回用户提供或这 默认提供的值26. .3.4.5.try26. 27,S)28.29. .5.try6.7.catch (JSONException ex) /键为null或仗用json不文持的数rftb弋(NaNj infinitiethrow new RuntimeExceptionfex);所旳fiffj的对鑿部是fl上1何创建的4彖将第-个电话号码转换対数们和将名宁转换为数值 phone,getLong(0);pers

10、on,getLong(*'name'*); /会抛界常 W为名?无法转换为1 ongphone.optLong(0); /代训内it的获认值 phone.optLo,ng(0 1000); / 川八捉供的默认值 person.ODtLone( "name"'):catch (JSONException ex) /犍为nuH或使川json不支持的数r格(NaNinfinitiethrow new RuntimeException(ex);所旳使川的对象部是用上而创建的对朶/将第个电込号码转换対数们和将爼r轧换为数们 phone,getLong(0);p

11、erson,getLong(*'name'*); /会抛井寫W为喀7无法转换为1 ongphone.optLong(0); /代码内卫的默认值Dhone.ODtLonefO* 1000): / 川榇供的默认侑除了上面的两个类,还可以使用JSONStringer来构建json文本b':-jsonText.key("age");JsonText- valtie( 100);A匚jsonText. key(*address*) II乩/address I?:ft'-:训写.r*.jsonText,object();訥.jsonText*key(&q

12、uot;country");jsonText * value ("china'*;jsonText. key (' province");2S "jsonText.value("Jiangsu");卜:.jsonText* endObject);Z'Ur ,jsonText. key 'married");t4-jsonText.value(false);幷一Jji ./ b nzJ'O.jsonText * endObjectO;U. catch (JSONException ex)

13、 3?. throw new RontimeE>cceptlon(ex); 3?. json文本解析类JSONTokener按照RFC4627规范将json文本解析为相应的对象。对于将json文本解析为对象,只需要用到该类的两个api :构造函数P ublic Object n extValue(;14.jsonText keyC'age");15.jsonText.value(100)j16.17.jsonText ekeyC'acldress'*);18./键address的值是对象19.jsonTextobject();20.jsonTextkey

14、("country");21.jsonText.value("china”);22.jsonText. key (''province");23.jso nText .valuer jiangsu”);24.jsonTextendObject();25.26.jso nText keyC'marr'iecT);27.jsonText.value(false);28.29./ ,对象结束其它的api基本就是用来查看json文本中的文本的j ” -married" :false," +1-."17

15、.I F.rj.如.illtry JSONTolkener jsonParser = new JSONTokener(JSONI) *U 1= h fq j£on < V. M I. L 4 i' JisONObjiectH 3"如t此M一旳町八川U3nzhifei89" String(3SONObject person = (SONObject) jsonParser-nextValueJ: Z next Value'u''yr '-iJ d-);-JI匸2'b.?'A .5.'0.Ji ,/

16、 K If' £l "!.企 3SON <Jperson.getSONApray("phone"); person. gets t ring (''name*); person. getlntCage*');person. get J SONObject C add ress'Jj person. get0oolean( "married*);catch (JSONException ex) /I J lih. 17.LE. try 1叮.20.” "married" : fal

17、se/* +DSONTokener jsonParsGr = new ZUSONITokener(3SON);/仏 json <4:.UJMh工 r JSONObject21 .uanzhifolSO*'/ A mi 卜H r疋p N L "namE” : f, nextValue vL StringDSONObject person = (JSONObject) jsonParser,nextValueI 二J尙-i"/();"I虫的J5W嗣盜门辿rt person, get JSONArray( "phone");person

18、.getString(” n日册e");per so n getint ("'age");person .get3SONObjiect( "address"); person getBoolean("married");15. /返回当前读取位置到第一次遇到字符串中(如"0089"任意字符之间的字符 串,同时该字符是trimmed的。(此处就是第一次遇到了 8 9) 16.jso nP arser. nextTo("0089" /me" : "yua nzhifei 17. 18. / 读取位置撤销一个 19.jso nP arser.back(; 20. jso

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论