您的位置:首页 > 移动开发 > Android开发

Android的本地Json解析

2015-07-27 13:20 441 查看
1、本地
取出需要解析的Json字符串
转化为UTF-8的格式
将字符串json转换为json对象
根据Json里面的key读取数据
//将json文件(存放在本地的res/raw)读取到buffer数组中
InputStream is = this.getResources().openRawResource(R.raw.getcart);
byte[] buffer = new byte[is.available()];
is.read(buffer);
//  将字符数组转换为UTF-8编码的字符串
String json = new String(buffer, "UTF-8");
将字符串json转换为json对象,以便于取出数据
JSONObject jsonObject = new JSONObject(json);
//解析info数组,解析中括号括起来的内容就表示一个数组,使用JSONArray对象解析
JSONObject objectInfo = jsonObject.getJSONObject("info");
JSONArray arraygroup = objectInfo.getJSONArray("group");
for (int i = 0; i < arraygroup.length(); i++) {
ShopBean shopBean = new ShopBean();
JSONObject item = arraygroup.getJSONObject(i);
int seller_uid = item.getInt("seller_uid");
String seller_name = item.getString("seller_name");

shopBean.setSeller_uid(seller_uid);
shopBean.setSeller_name(seller_name);

JSONArray arraygoods = item.getJSONArray("goods");
for (int j = 0; j < arraygoods.length(); j++) {
JSONObject jtem = arraygoods.getJSONObject(j);
int stock_id = jtem.getInt("stock_id");
String goods_name = jtem.getString("goods_name");
int qty = jtem.getInt("qty");
boolean is_choose = jtem.getBoolean("is_choose");
int price = jtem.getInt("price");
String goods_img = jtem.getString("goods_img");
String extend = jtem.getString("extend");
int stock_num = jtem.getInt("stock_num");
int goodsTotalPrice = jtem.getInt("goodsTotalPrice");
double rate = jtem.getDouble("rate");

//把商品的属性值添加到shop实体类中
shopBean.setStock_id(stock_id);
shopBean.setGoods_name(goods_name);
shopBean.setQty(qty);
shopBean.setIs_choose(is_choose);
shopBean.setPrice(price);
shopBean.setGoods_img(goods_img);
shopBean.setExtend(extend);
shopBean.setStock_num(stock_num);
shopBean.setGoodsTotalPrice(goodsTotalPrice);
shopBean.setRate(rate);
shopBeanList.add(shopBean);

}
另附:  定义的实体类为:
{
"info": {
"group": [
{
"seller_uid": "375",
"seller_name": "wendy\u7f8e\u5986\u4e13\u8425\u5e97",
"goods": [
{
"stock_id": 6019447,
"goods_name": "\u4e13\u67dc\u6b63\u54c1 \u9999\u5948\u513f \u9ec4\u8272\u9082\u9005\u9999\u6c34\u6da6\u4f53\u4e73\u8eab\u4f53\u971c200ml",
"qty": 1,
"is_choose": true,
"price": 404,
"goods_img": "http:\/\/sjshop.easyder.com\/res\/upload\/image\/100-100\/2d\/0f\/2d0fc9d2b4af836313243dc53e2e07e1.jpg",
"extend": "",
"stock_num": "3",
"goodsTotalPrice": 404,
"rate": 3.23
}
]
},
{
"seller_uid": "285",
"seller_name": "\u4e13\u8425\u5e97",
"goods": [
{
"stock_id": 8773389,
"goods_name": "[\u7279\u4ef7\u5305\u90ae]\u4e13\u67dc\u6b63\u54c1 \u897f\u57df\u7f8e\u519c \u590f\u679c\u6fb3\u6d32\u8fdb\u53e3\u96f6\u98df\u590f\u5a01\u5937\u679c\u575a\u679c\u98df\u54c1\u5976\u6cb9\u9999\u5473\u5e72\u679c\u96f6\u98df160g",
"qty": 2,
"is_choose": true,
"price": 6.19,
"goods_img": "http:\/\/sjshop.easyder.com\/res\/upload\/image\/100-100\/20\/b8\/20b89870c6babf6fb36565b7e501d58f.jpg",
"extend": "",
"stock_num": "4",
"goodsTotalPrice": 12.38,
"rate": 0.04
},
{
"stock_id": 8655629,
"goods_name": "\u4e13\u67dc\u6b63\u54c1 \u4e45\u7231 love\u60c5\u4fa3\u6212\u6307 925\u7eaf\u94f6\u5bf9\u6212\u5b50 \u745e\u58eb\u94bb\u9996\u9970\u54c1 \u514d\u8d39\u523b\u5b57",
"qty": 2,
"is_choose": true,
"price": 99,
"goods_img": "http:\/\/sjshop.easyder.com\/res\/upload\/image\/100-100\/0a\/91\/0a910ae6a7ca2f2081fe4e87928ae9df.jpg",
"extend": "\u7537\u6b3e21\u53f7  ",
"stock_num": "5",
"goodsTotalPrice": 198,
"rate": 3.17
}
]
},
{
"seller_uid": "1147",
"seller_name": "\u4e0a\u6d77\u60a0\u8dc3\u5bb6\u5c45\u7528\u54c1\u6709\u9650\u516c\u53f8",
"goods": [
{
"stock_id": 8738701,
"goods_name": "\u4e13\u67dc\u6b63\u54c1 \u8c61\u5370 \u5973\u58eb\u7537\u58eb\u513f\u7ae5\u4fdd\u6e29\u676f\u5b50\u65c5\u884c\u5fc5\u5907\u4fdd\u6e29\u6c34\u58f6 SF-CC18-XA 1800m",
"qty": 3,
"is_choose": true,
"price": 539,
"goods_img": "http:\/\/sjshop.easyder.com\/res\/upload\/image\/100-100\/65\/54\/65541e52cbfb7d187ac219bc96b2db68.jpg",
"extend": "",
"stock_num": "27",
"goodsTotalPrice": 1617,
"rate": 12.94
}
]
},
{
"seller_uid": "1093",
"seller_name": "\u59da\u5e02\u7530\u91ce\u5851\u6599\u5236\u54c1\u6709\u9650\u516c\u53f8",
"goods": [
{
"stock_id": 8696621,
"goods_name": "\u4e13\u67dc\u6b63\u54c1 \u5929\u548c\u7530\u91ce \u52a0\u539a\u94dd\u5408\u91d1\u843d\u5730\u6298\u53e0\u667e\u8863\u67b6 X\u578b\u7f6e\u5730\u9633\u53f0\u8863\u67b6 \u667e\u88ab\u67b6\u5305\u90ae",
"qty": 2,
"is_choose": true,
"price": 188.65,
"goods_img": "http:\/\/sjshop.easyder.com\/res\/upload\/image\/100-100\/d8\/ae\/d8ae683db4cdedf750ea7b4e713bfd1e.jpg",
"extend": "\u91d1\u8272  ",
"stock_num": "274",
"goodsTotalPrice": 377.3,
"rate": 3.02
}
]
}
]},
"tips": "\u6210\u529f",
"status": 1,
"chooseGoodsNum": 10,
"chooseGoodsTotalPrice": 2608.68,
"allGoodsTotalPrice": 2608.68,
"allGoodsNum": 10,
"totalRate": 22.4
}
View Code

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: