下面,是特殊的json串:
[
{
"img3": "http://img01.taobaocdn.com/imgextra/i1/TB1Bq9kGXXXXXaJXpXXXXXXXXXX_!!0-item_pic.jpg_230x230.jpg",
"name": "软毛清洁牙刷12支",
"price": 38,
"tg_price": 9.9
},
{
"img3": "http://gi3.md.alicdn.com/imgextra/i3/1014079219/T2OfbvXwtaXXXXXXXX_!!1014079219.jpg_230x230.jpg",
"name": "泰星星球杯大粒400g",
"price": 11.9,
"tg_price": 9.2
},
{
"img3": "http://gi3.md.alicdn.com/imgextra/i3/528707031/TB24rSvaFXXXXaZXXXXXXXXXXXX_!!528707031.jpg_230x230.jpg",
"name": "迷你折叠吹风机",
"price": 88,
"tg_price": 16.9
},
{
"img3": "http://gi1.md.alicdn.com/imgextra/i1/2121757313/TB2Ib.nbXXXXXahXXXXXXXXXXXX_!!2121757313.jpg_230x230.jpg",
"name": "肉松饼250g装约10个",
"price": 22,
"tg_price": 11
},
{
"img3": "http://l0.51fanli.net/tuan/images/2014/12/549be87577f22.jpg",
"name": "手机通用充电宝20000毫安",
"price": 216,
"tg_price": 19.9
},
{
"img3": "http://l3.51fanli.net/tuan/images/2014/12/549be310db4a1.jpg",
"name": "加厚乳胶橡胶手套",
"price": 18,
"tg_price": 5.8
},
{
"img3": "http://l0.51fanli.net/tuan/images/2014/12/549be1c63cdd0.jpg",
"name": "苹果4/4s数据线[多规格可选]",
"price": 9.2,
"tg_price": 2.8
},
{
"img3": "http://gd2.alicdn.com/imgextra/i2/1780008490/TB2jyTBbXXXXXcnXXXXXXXXXXXX_!!1780008490.jpg_320x320.jpg",
"name": "完美芦荟胶40g[买2送1]",
"price": 38,
"tg_price": 9.9
}
]
有三种方法,这边就讲两种:
第一种是Gson解析:
InputStream open = getAssets().open("array.json");
String str=StreamToString.streamToStr(open,"utf-8");
Log.d("zzz",str);
List<Shop> shops=new ArrayList<>();
// //得到要解析的 数据的集合类型 type
// Type type=new TypeToken<List<Shop>>(){}.getType();
//
// Gson gson=new Gson();
// shops=gson.fromJson(str,type);
// 打印一下
// for(Shop s:shops){
// Log.d("zzz",s.toString());
// }
第二种是原生解析:
InputStream open = getAssets().open("array.json");
String str=StreamToString.streamToStr(open,"utf-8");
Log.d("zzz",str);
List<Shop> shops=new ArrayList<>();
JSONArray array = new JSONArray(str);
for(int i=0;i<array.length();i++){
Shop shop=new Shop();
JSONObject object=array.optJSONObject(i);
String name=object.optString("name");
shop.setName(name);
//添加到集合中
shops.add(shop);
}
for(Shop s:shops){
Log.d("zzz",s.getName());
}
得到集合就可以了。