在Android中读取json文件

Aak*_*nuj 81 android json

我有以下json文件.我想知道在哪里将json文件放在我的项目中以及如何阅读和存储它.

{
"aakash": [
    [  0.070020,0.400684],
    [  0.134198,0.515837],
    [  0.393489,0.731809],
    [  0.281616,0.739490]

],
"anuj": [
    [  1287.836667,-22.104523],
    [  -22.104523,308.689613],
    [  775.712801,-13.047385],
    [  -13.047385,200.067743]
]
}
Run Code Online (Sandbox Code Playgroud)

Fai*_*zan 202

将该文件放入资产中.

对于在Android Studio项目中创建的项目,您需要在主文件夹下创建assets文件夹.

将该文件读取为:

public String loadJSONFromAsset(Context context) {
        String json = null;
        try {
            InputStream is = context.getAssets().open("file_name.json");

            int size = is.available();

            byte[] buffer = new byte[size];

            is.read(buffer);

            is.close();

            json = new String(buffer, "UTF-8");


        } catch (IOException ex) {
            ex.printStackTrace();
            return null;
        }
        return json;

    }
Run Code Online (Sandbox Code Playgroud)

然后您可以string通过此函数简单地读取此返回值

JSONObject obj = new JSONObject(json_return_by_the_function);
Run Code Online (Sandbox Code Playgroud)

有关JSON的更多详细信息,请参阅 http://www.vogella.com/articles/AndroidJSON/article.html

希望你能得到你想要的东西.

  • _对于在Android Studio项目中创建的项目,您需要在主文件夹下创建资产文件夹_什么是`asset folder`和`main folder`? (7认同)
  • 如果文件大小几乎是6到7 MB怎么办?如果将文件包含到字符串中,则会抛出异常(内存不足).有没有办法一次只从JsonArray文件中检索一个jsonObject? (3认同)
  • 根据Java文档返回的,根据available()返回的结果分配缓冲区是不正确的:http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#available()"请注意,虽然InputStream的某些实现将返回流中的总字节数,但许多实际上不会.使用此方法的返回值来分配用于保存此流中所有数据的缓冲区永远是正确的. (3认同)
  • 本快速教程介绍了如何在 Android Studio 中创建资源文件夹:http://code2care.org/2015/create-assets-folder-in-android-studio/ (2认同)