android原生JSON解析实例
我们在android项目开发的时候,经常要对JSON进行解析,很多朋友在寻找相关的实例,小编整理详细的相关分析说明,一起来看下。
JSONObject:JSON数据封装对象
JSONArray:JSON数据封装数组
Bean:
packagenet.bwie.jsonobject;
importjava.util.List;
publicclassShoppingBean{
privateStringmsg;
privateInfoBeaninfo;
publicStringgetMsg(){
returnmsg;
}
publicvoidsetMsg(Stringmsg){
this.msg=msg;
}
publicInfoBeangetInfo(){
returninfo;
}
publicvoidsetInfo(InfoBeaninfo){
this.info=info;
}
@Override
publicStringtoString(){
return"ShoppingBean{"+
"msg='"+msg+'\''+
",info="+info+
'}';
}
publicstaticclassInfoBean{
privateintcat_id;
privateListgood;
privatebooleanurl;
publicintgetCat_id(){
returncat_id;
}
publicvoidsetCat_id(intcat_id){
this.cat_id=cat_id;
}
publicListgetGood(){
returngood;
}
publicvoidsetGood(Listgood){
this.good=good;
}
publicbooleanisUrl(){
returnurl;
}
publicvoidsetUrl(booleanurl){
this.url=url;
}
@Override
publicStringtoString(){
return"InfoBean{"+
"cat_id="+cat_id+
",good="+good+
",url="+url+
'}';
}
publicstaticclassGoodsBean{
privatelongadd_time;
privateStringcolorcode;
privateStringcurrency_price;
privateStringdescription;
privateStringgoods_id;
privateStringgoods_name;
privateStringthumb;
publiclonggetAdd_time(){
returnadd_time;
}
publicvoidsetAdd_time(longadd_time){
this.add_time=add_time;
}
publicStringgetColorcode(){
returncolorcode;
}
publicvoidsetColorcode(Stringcolorcode){
this.colorcode=colorcode;
}
publicStringgetCurrency_price(){
returncurrency_price;
}
publicvoidsetCurrency_price(Stringcurrency_price){
this.currency_price=currency_price;
}
publicStringgetDescription(){
returndescription;
}
publicvoidsetDescription(Stringdescription){
this.description=description;
}
publicStringgetGoods_id(){
returngoods_id;
}
publicvoidsetGoods_id(Stringgoods_id){
this.goods_id=goods_id;
}
publicStringgetGoods_name(){
returngoods_name;
}
publicvoidsetGoods_name(Stringgoods_name){
this.goods_name=goods_name;
}
publicStringgetThumb(){
returnthumb;
}
publicvoidsetThumb(Stringthumb){
this.thumb=thumb;
}
@Override
publicStringtoString(){
return"GoodsBean{"+
"add_time="+add_time+
",colorcode='"+colorcode+'\''+
",currency_price='"+currency_price+'\''+
",description='"+description+'\''+
",goods_id='"+goods_id+'\''+
",goods_name='"+goods_name+'\''+
",thumb='"+thumb+'\''+
'}';
}
}
}
}
Activity:
/**
*1、将json文件存在外部存储中,使用IO流读取文件中的数据
*2、使用JSONObject解析读取出来的数据
*/
publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{
privateStringmJson="";
protectedButtonmReadFileBtn;
protectedButtonmParseBtn;
protectedTextViewmResultTv;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
initView();
}
@Override
publicvoidonClick(Viewview){
if(view.getId()==R.id.read_file_btn){
readFile();
}elseif(view.getId()==R.id.parse_btn){
ShoppingBeanshopping=parseJson();
Log.d("1507",""+shopping);
}
}
//解析JSON数据
//遇到{}就创建JSONObject,遇到[]就创建JSONArray
privateShoppingBeanparseJson(){
ShoppingBeanshopping=null;
try{
JSONObjectrootObject=newJSONObject(mJson);
shopping=newShoppingBean();
Stringmsg=rootObject.getString("msg");
shopping.setMsg(msg);
JSONObjectinfoObject=rootObject.getJSONObject("info");
ShoppingBean.InfoBeaninfo=newShoppingBean.InfoBean();
shopping.setInfo(info);
intcatId=infoObject.getInt("cat_id");
info.setCat_id(catId);
booleanurl=infoObject.getBoolean("url");
info.setUrl(url);
JSONArraygoodsArray=infoObject.getJSONArray("goods");
ListgoodsList=newArrayList<>();
info.setGood(goodsList);
for(inti=0;i
权限:
如果上面说的还有不明白的,大家可以在下方留言讨论。