【问题标题】:How to load JSON data from asset folder into Recyclerview如何将资产文件夹中的 JSON 数据加载到 Recyclerview
【发布时间】:2019-12-22 01:55:39
【问题描述】:

我卡在 RecyclerView 中的数据中。我在资产文件夹中有一个这样的json:

我想将此数据加载到我的 RecyclerView 和 CardView 中。我已经阅读了很多教程,但没有关于我的案例的教程。 RecyclerView 的每个教程总是从 Internet 加载 JSON。

【问题讨论】:

    标签: android json sqlite android-studio android-recyclerview


    【解决方案1】:

    首先,您要迈出一大步来做所有事情。您很少会在一个地方找到针对特定问题的解决方案。解决问题的最佳方法是将它们分成更小的问题。 例如,如果我们处理您的问题,可以分为以下几个部分:

    1. 读取资产文件夹中的文件
    2. 将文件数据解析成json
    3. 从 json 中提取数据
    4. 将适配器中的数据用于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 如果有帮助,请点赞并接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多