【问题标题】:Adding static JSON to an Android Studio project将静态 JSON 添加到 Android Studio 项目
【发布时间】:2015-10-10 23:27:07
【问题描述】:

我想将静态 JSON 添加到 Android Studio 项目中,然后可以在整个项目中引用该项目。有谁知道这样做的最佳方法?

更详细地说,我想做的是: 1) 从 Google Places API 中提取数据 2) 查找与静态 JSON 对象中的地点匹配的 Google 地点 3) 根据匹配在地图上放置标记

我有数字 1 和 3 工作,但想知道在我的项目中创建静态(常量)JSON 对象并将其用于第 2 步的最佳方法。

【问题讨论】:

  • 你不能只添加一个data.json 文件并添加它吗?还是你问如何添加文件?

标签: android json


【解决方案1】:

上面发布的答案确实是我正在寻找的,但我想我会添加一些我实现的代码来帮助其他人进一步解决这个问题:

1) 在 assets 文件夹的 txt 文件中定义 JSON 对象

2) 实现一个方法以字符串形式提取该对象:

private String getJSONString(Context context)
{
    String str = "";
    try
    {
        AssetManager assetManager = context.getAssets();
        InputStream in = assetManager.open("json.txt");
        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;
}

3) 以您认为合适的任何方式解析对象。我的方法是这样的:

public void parseJSON(View view)
{
    JSONObject json = new JSONObject();

    try {
        json = new JSONObject(getJSONString(getApplicationContext()));
    } catch (JSONException e) {
        e.printStackTrace();
    }

   //implement logic with JSON here       
}

【讨论】:

    【解决方案2】:

    您只需将 JSON 文件放入 assets 文件夹即可。稍后您将能够读取文件、解析它并使用值。

    【讨论】:

    • 谢谢,这就是我要找的。​​span>
    • @CanadianCoder 你有幸实现它。
    【解决方案3】:

    您应该在 while 循环中将 String 数据类型替换为 StringBuilder 以获得正确优化的解决方案。 因此,在 while 循环中,您可以将 readString 附加到 str StringBuilder。

    str.append(readString);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 2017-02-02
      • 2017-01-17
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      相关资源
      最近更新 更多