android加载assets中的json格式文件
我是新手在自学android,看到一般的网站这样实现求源代码。[{"name":"张三","age":"17"},{"name":"李四","age":"18"},{"n...
我是新手在自学android,看到一般的网站这样实现求源代码。
[
{"name":"张三","age":"17"},
{"name":"李四","age":"18"},
{"name":"王五","age":"19"},
{"name":"赵六","age":"20"}
]
上面是json中的参数。希望大神能帮解决。 展开
[
{"name":"张三","age":"17"},
{"name":"李四","age":"18"},
{"name":"王五","age":"19"},
{"name":"赵六","age":"20"}
]
上面是json中的参数。希望大神能帮解决。 展开
3个回答
2015-12-08 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
assets资源目录一般用于存放html文件、数据库文件、javascript文件,assets目录下的文件不会在R.java自动生成ID,所以读取assets目录下的文件必须指定文件的路径
在代码中使用AssertManager获取文件的输入流读取
AssetManager assetManager = context.getAssets();
try {
InputStream is = assetManager.open("json.data");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer stringBuffer = new StringBuffer();
String str = null;
while((str = br.readLine())!=null){
stringBuffer.append(str);
}
} catch (IOException e) {
e.printStackTrace();
}
也可以把json文件放在res的raw目录下
res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;
但是需要注意的是assets允许有目录结构,而raw不行
读取方法大同小异
try {
InputStream is = getResources().openRawResource(R.id.file);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer stringBuffer = new StringBuffer();
String str = null;
while((str = br.readLine())!=null){
stringBuffer.append(str);
}
} catch (IOException e) {
e.printStackTrace();
}
展开全部
JSONObject object=new JSONObject(String jason格式的字符串);
然后用object.getString(String key)来获取值;
另外有JSONArray类可获取数组json格式的解析;获得为JSONObject的数组,在调用 上面的遍历数组即可
然后用object.getString(String key)来获取值;
另外有JSONArray类可获取数组json格式的解析;获得为JSONObject的数组,在调用 上面的遍历数组即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关键是问题呢?你是想知道什么?
追答
//从assets 文件夹中获取文件并读取数据
public String getFromAssets(String fileName){
String result = "";
try {
InputStream in = getResources().getAssets().open(fileName);
//获取文件的字节数
int lenght = in.available();
//创建byte数组
byte[] buffer = new byte[lenght];
//将文件中的数据读到byte数组中
in.read(buffer);
result = EncodingUtils.getString(buffer, "UTF-8");//你的文件的编码
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询