如何将资产文件夹中的 JSON 数据加载到 Recyclerview
Posted
技术标签:
【中文标题】如何将资产文件夹中的 JSON 数据加载到 Recyclerview【英文标题】:How to load JSON data from asset folder into Recyclerview 【发布时间】:2019-12-22 01:55:39 【问题描述】:我卡在 RecyclerView 中的数据中。我在资产文件夹中有一个这样的json:
我想将此数据加载到我的 RecyclerView 和 CardView 中。我已经阅读了很多教程,但没有关于我的案例的教程。 RecyclerView 的每个教程总是从 Internet 加载 JSON。
【问题讨论】:
【参考方案1】:首先,您要迈出一大步来做所有事情。您很少会在一个地方找到针对特定问题的解决方案。解决问题的最佳方法是将它们分成更小的问题。 例如,如果我们处理您的问题,可以分为以下几个部分:
-
读取资产文件夹中的文件
将文件数据解析成json
从 json 中提取数据
将适配器中的数据用于recyclerview
在这 4 部分中,您应该已经知道第四部分,所以现在您需要寻找前 3 部分。 如果你用谷歌搜索每个部分,你会发现每个部分都有很多答案。
1.读取资产文件夹中的文件
以下函数将为您提供 String 中的文件内容:
private String getFileContentsAsString(Context context, String file)
String str = "";
try
AssetManager assetManager = context.getAssets();
InputStream in = null;
try
in = assetManager.open(file);
catch (IOException e)
e.printStackTrace();
InputStreamReader isr = new InputStreamReader(in);
char [] inputBuffer = new char[100];
int charRead;
while((charRead = isr.read(inputBuffer))>0)
String readString = String.copyValueOf(inputBuffer,0,charRead);
str += readString;
catch(IOException ioe)
ioe.printStackTrace();
return str;
2。将文件数据解析成json 现在您已经将数据作为字符串,您可以将其解析为 JSON:
String fileString = getFileContentsAsString("contents.json");
JSONObject json = new JSONObject(fileString);
3.从 json 中提取数据 获取 json 数组,然后将数据映射到您自己的对象上。
JSONArray itemArray = json.getJSONArray("items");
4.在适配器中使用数据 使用上述步骤中的数据来填充您的适配器。
同样,所有这些步骤的资源都已经可用。
【讨论】:
谢谢你,兄弟,我很抱歉,我很感激你对我的误解,你是对的,我必须做剩下的代码 @amghawnbena 如果有帮助,请点赞并接受答案。以上是关于如何将资产文件夹中的 JSON 数据加载到 Recyclerview的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Django ORM 将 JSON 文件中的数据加载到 MySQL 实例中?
如何在 C# Unity 中加载带有扩展名(.json)的资产文件夹中的任何文件
如何将字符串中带有双引号的json文件加载到spark scala中的数据框中