安卓加载asset中的json文件_读取本地json的时候,asset下的文件名要包括扩展名

packagecom.example.jsonresolvetest;importjava.io.BufferedReader;importjava.io.File;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.List;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importcom.example.jsonresolvetest.bean.ArenaBean;importandroid.support.v7.app.ActionBarActivity;importandroid.support.v7.app.ActionBar;importandroid.support.v4.app.Fragment;importandroid.content.Context;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.ListView;importandroid.os.Build;public class MainActivity extendsActionBarActivity {//这个类就是解析类//1 从网络拿,展示数据,2从本地json里拿,展示数据

privateListView lv_arena;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lv_arena=(ListView) findViewById(R.id.lv_arena);

jsonData(MainActivity.this, "jsonarena.json");/**尤其需要注意:这里的json文件要带扩展名,要写成"jsonarena.json" 而不是"jsonarena"*/

}public static JSONObject jsonData(Context context,String fileName){//filename assets目录下的json文件名

JSONObject jsonDate=null;try{

//jsonarena.json文件是放在项目的assets文件夹下的

InputStreamReader inputStreamReader=new InputStreamReader(context.getAssets().open(fileName),"UTF-8"); //找不着jsonarena文件

BufferedReader bufferedReader=newBufferedReader(inputStreamReader);

String line;

StringBuilder stringBuilder=newStringBuilder();while ((line=bufferedReader.readLine())!=null){

stringBuilder.append(line);

}

bufferedReader.close();

inputStreamReader.close();

jsonDate=JSON.parseObject(stringBuilder.toString());//得到JSONobject对象

Log.e("jsonDate","=="+jsonDate);int retArray=jsonDate.getIntValue("ret");//得到ret的内容

Log.e("retArray","=="+retArray);

String msgArray= jsonDate.getString("msg");//得到msg的内容

Log.e("msgArray","=="+msgArray);

JSONArray arenaArray=jsonDate.getJSONArray("arena");//得到arena节点,不懂得看Log打印就清楚了

Log.e("arenaArray","=="+arenaArray);

List listArenaBean=JSON.parseArray(arenaArray.toString(),ArenaBean.class); //Series 相当于ArenaBean节点

for(ArenaBean arenaBean:listArenaBean){

Log.e("arena.getId","="+arenaBean.getId());

Log.e("arena.getname","="+arenaBean.getName());

Log.e("arena.getId","="+arenaBean.getStatus());

}

}catch(IOException e) {

e.printStackTrace();

}returnjsonDate;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值