如何将资产文件夹中的 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中的数据框中

如何将 JPEG 添加到 Xcode 中的资产目录?

如何将资产文件夹中的本地 JSON 文件解析为 ListView?

将 JSON 文件中的项目数据动态加载到 React