Json数据的解析

Json数据解析各种方法全面分析:
http://www.cnblogs.com/xiaoluo501395377/p/3446605.html

网络数据请求返回一般为Json数据。形如:

{
status: 1,
data: [
{
id: 1,
name: "Tony老师聊shell——环境变量配置文件",
picSmall: "http://img.mukewang.com/55237dcc0001128c06000338-300-170.jpg",
picBig: "http://img.mukewang.com/55237dcc0001128c06000338.jpg",
description: "为你带来shell中的环境变量配置文件",
learner: 12312
},
{
id: 2,
name: "数学知识在CSS动画中的应用",
picSmall: "http://img.mukewang.com/55249cf30001ae8a06000338-300-170.jpg",
picBig: "http://img.mukewang.com/55249cf30001ae8a06000338.jpg",
description: "数学知识与CSS结合实现酷炫效果",
learner: 45625
}
],
msg: "成功"
}

Json数据在安卓应用上的解析一般用到自定义的JavaBean对象,此对象用于映射Json数据。如:

public class NetClassData {
    public integer id;
    public String name;
    public String picSmall;
    public String picBig;
    public String description;
    public integer learner;
}

1. 获取Json数据流

 InputStream is = URL(url).openStream()//通过url字符串打开     一个InputStream输入流

Url类的简单解析:
http://blog.csdn.net/harvic880925/article/details/44679239

InputStreamReader isr;//定义一个可读输入流
String result = "";//定义一个字符串用于返回数据流
String line = "";//定义一个字符串,用于存储isr流中每一行的数据
isr = new InputStreamReader(is, "utf-8");//通过InputStream流开启一个InputStreamReader流,并定义编码格式为UTF-8
BufferedReader br = new BufferedReader(isr);//通过InputStreamReader流开启一个bufferedReader流
//逐行读取br中的数据流,并赋值给result
while ((line = br.readLine()) != null) {
        result += line;
     }

此步骤获得的数据即为一个JsonString数据

2. 解析Json数据

JSONObject jsonObject;  
jsonObject = new JSONObject(jsonString);//通过JsonString数据关联JsonObject
JSONArray jsonArray = jsonObject.getJSONArray("data");//获得JsonObject中的名为"data"的JsonArray
for (int i = 0; i < jsonArray.length(); i++) {
    //每个JsonArray数组中的元素又是一个JsonObject对像
    jsonObject = jsonArray.getJSONObject(i);
    netClassData = new NetClassData();//NetClassData为自定义的JavaBean对象,下面实现映射关系
    netClassData.picSmall = jsonObject.getString("picSmall");
    netClassData.name = jsonObject.getString("name");
    netClassData.description = jsonObject
            .getString("description");
    datalist.add(netClassData);//将数据加入到ArrayList中
    }

以上两步便将Json数据获取并解析到一个ArrayList数组中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值