您的位置 首页 模拟

Android Json解析 – 开始

JSON与XML一样都是数据格式,JSON的数据格式比XML更小。这里主讲JSON。JSON是JavsScript对象符号。下面是一个简单的JSON格式{name:zhangsan,age:22,ad

JSON与XML相同都是数据格局,JSON的数据格局比XML更小。这儿主讲JSON。

JSON是JavsScript目标符号。

下面是一个简略的JSON格局

{name:zhangsan,age:22,address:太原}

这便是一个目标,里边的值key是冒号前面的类容,value是冒号后边的类容。

JSON还能够有数组的方式,如下:

[{name:zhangsan,age:22,address:太原},

{name:lisi,age:20,address:黄冈},

{name:wangwu,age:21,address:武汉}]

在中括号里全都是目标,这种目标的个数没约束,目标里是键值对。

在JSON目标中还能够有目标,如下:

{

name:zhangsan,age:22,

address:{country:我国,province:山西,city:太原}

}

这便是说address key是一个目标。

这便是JSON的基本方式。

首要下载解析JSON需求的Jar包 下载。这是Google供给解析JSON的开源的Json Jar包。

1.最根底的解析

这种解析式最遍及的,依据JSON的格局来解析,我来解析如下的JSON数据:

{name:zhangsan,age:22,address:太原}

首要

String s={\name\:\zhangsan\,\age\:22,\address\:\太原\};

这儿运用反斜杠来运用双引号。

JsonReader reader=new JsonReader(new StringReader(s));

声明一个JsonReader目标,将String s传入。

try {

JsonReader reader=new JsonReader(new StringReader(data));

reader.beginObject();

while(reader.hasNext())

{

String key=reader.nextName();

if(name.equals(key))

{

System.out.println(reader.nextString());

}

if(age.equals(key))

{

System.out.println(reader.nextInt());

}

if(address.equals(key))

{

System.out.println(reader.nextString());

}

}

reader.endObject();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

成果如下:

开端解析的时分调用reader.beginObject();完毕的时分调用reader.endObject().应为一个目标里可能有许多的键值对,所以要运用while循环,当目标里的键值对都循环完了的话reader.hasNext()办法回来false。reader.nextXXX()取得你所要的值,XXX为类型。

2.解析数组

下面解析如下的Json数据:

[{name:zhangsan,age:22,address:太原},

{name:lisi,age:20,address:黄冈},

{name:wangwu,age:21,address:武汉}]

如下代码:

try {

JsonReader reader=new JsonReader(new StringReader(data));

reader.beginArray();

while(reader.hasNext())

{

reader.beginObject();

while(reader.hasNext())

{

String key=reader.nextName();

if(name.equals(key))

{

System.out.println(reader.nextString());

}

if(age.equals(key))

{

System.out.println(reader.nextInt());

}

if(address.equals(key))

{

System.out.println(reader.nextString());

}

}

reader.endObject();

}

reader.endArray();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

依据这个Json的数据结构,我先解析数组,所以开端就reader.beginArray();当然还要reader.endArray();相同运用reader.hasNext()来判别数组是否都解析完了。

下面是效果图:

3.包括目标的目标解析

下面我解析如下的Json数据:

{

name:zhangsan,age:22,

address:{country:我国,province:山西,city:太原}

}

废话不多说先来代码:

try {

JsonReader reader=new JsonReader(new StringReader(data));

reader.beginObject();

while(reader.hasNext())

{

String key=reader.nextName();

if(name.equals(key))

{

System.out.println(reader.nextString());

}

if(address.equals(key))

{

reader.beginObject();

while(reader.hasNext())

{

String theKey=reader.nextName();

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/321341.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部