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中的参数。希望大神能帮解决。
展开
 我来答
千锋教育
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();
}
留風
2014-08-07
知道答主
回答量:25
采纳率:0%
帮助的人:9.7万
展开全部
JSONObject object=new JSONObject(String jason格式的字符串);
然后用object.getString(String key)来获取值;
另外有JSONArray类可获取数组json格式的解析;获得为JSONObject的数组,在调用 上面的遍历数组即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神官0麦依0
科技发烧友

2014-08-06 · 有一些普通的科技小锦囊
知道小有建树答主
回答量:1145
采纳率:75%
帮助的人:375万
展开全部
关键是问题呢?你是想知道什么?
追问

首先我想在一个框内显示文件中的内容。然后中文不能乱码。JSON文件格式里的东西就这是我上面的!能帮我直接做好吗?

追答
//从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;
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式