在AndroID 项目中,可以把预先 JsON 数据保存在 res/raw 的目录下, 然后再通过Resources.openRawResource 读取。
Resources 对象可以通过Context 对象去获取。
public class Resources { public inputStream openRawResource(@RawRes int ID) throws NotFoundException {
public abstract class Context { public abstract Resources getResources();
1. 保存Json数据 (res/raw/ 目录下)例如把 contents.Json 保存在 res/raw 目录下
其中contents.Json 的内容:
{ "pageInfo": { "pagename": "abc", "pagePic": "http://example.com/content.jpg" }, "posts": [ { "post_ID": "123456789012_123456789012", "actor_ID": "1234567890", "picOfPersonWhoPosted": "http://example.com/photo.jpg", "nameOfPersonWhoPosted": "Jane Doe", "message": "Sounds cool. Can't wait to see it!", "likesCount": "2", "comments": [], "timeOfPost": "1234567890" } ]}
2. 导入Gson 依赖略
3. 读取Json 文件,得到 JsonObject 对象 private JsonObject load(int ID){ String Json = ""; try { inputStream inputStream = mContext.getResources().openRawResource(ID); Writer writer = new StringWriter(); char[] buffer = new char[inputStream.available()]; Reader reader = new BufferedReader(new inputStreamReader(inputStream, StandardCharsets.UTF_8)); int n; while((n = reader.read(buffer)) != -1){ log.info("load n="+n); writer.write(buffer, 0, n); } Json = writer.toString(); } catch (Exception e){ log.error("load Json error: "+e.getMessage()); } return new Gson().fromJson(Json, JsonObject.class); }}
主要是得到inputStream后,通过BufferReader 读取, 最后写入到StringWriter 对象中。
4. 调用JsonObject JsonObject = load(R.raw.contents);
其中, JsonObject 是Gson 依赖库的类, 也有JsonArray 表示数组, 注意区分org.Json 库中的JsONObject 和JsONArray 类
总结以上是内存溢出为你收集整理的JSON 使用实例_2_Android 读取json文件全部内容,希望文章能够帮你解决JSON 使用实例_2_Android 读取json文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)