android reader sdk,使用Android sdk自带的jsonReader来解析json

json数据的解析相对而言,还是比较容易的,实现的代码也十分简单。这里用的是jsonReade方法来进行json数据解析。

1.在解析之前,大家需要知道什么是json数据。

json数据存储的对象是无序的“名称/值”对的集合。和其他的数据存储方式相比,json数据的可读性,可扩展性,编码难度,解码难度都有一定的优势。在json数据中,

对于一个对象:

(1)一个对象以“{”(左括号)开始,“}”(右括号)结束。

(2)每个“名称”后跟一个“:”(冒号);

(3)“‘名称/值’ 对”之间使用“,”(逗号)分隔。

对于一个数组:

(1)一个数组以“[”(左中括号)开始,“]”(右中括号)结束。

(2)值之间使用“,”(逗号)分隔。

对于json文件{

"id": "3232",

"data": [{

"data1": "555",

"data2": "3243"

},

{

"data1": "888",

"data2": "777"

}

]

}

JsonReader解析的例子是:public void parseAssertData() {

InputStream is = null;

try {

is = this.getAssets().open("json1.json", Context.MODE_PRIVATE);

int length = is.available();

byte[] buffer = new byte[length];

is.read(buffer);

String temp = new String(buffer);

Reader response = new StringReader(temp.toString());

parseResponse(response);

} catch (IOException ex) {

ex.printStackTrace();

}

}

private void parseResponse(Reader response) throws IOException {

JsonReader reader = new JsonReader(response);

reader.beginObject();

while (reader.hasNext()) {

String name = reader.nextName();

if ("id".equals(name)) {

String id = reader.nextString();

System.out.println("===id="+id);

}

else if (name.equals("data")) {

reader.beginArray();

while (reader.hasNext()) {

reader.beginObject();

String name1;

while (reader.hasNext()) {

name1 = reader.nextName();

if (name1.equals("data1")) {

String s1 = reader.nextString();

System.out.println("===s1="+s1);

} else if (name1.equals("data2")) {

String s2 = reader.nextString();

System.out.println("===s2="+s2);

}  else {

reader.skipValue();

}

}

reader.endObject();

}

reader.endArray();

}

else {

reader.skipValue();

}

}

reader.endObject();

reader.close();

}

1. 使用JsonReader方法解析Json数据对象,你需要创建一个JsonReader对象.

2.然后使用beginArray()来开始解析 [ 左边的第一个数组。

3.再使用beginObject()来开始解析数组{中的第一个对象。

4.对于直接的数据可以直接得到解析到的数据,但对于在json中嵌套了数组的数据,需要在写一个解析方法。

5.在解析完成后,别忘用endArray(),endObject()来关闭解析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值