Java Android,如何读取原始文件夹中的Json

Java Android,如何读取原始文件夹中的Json,java,android,json,Java,Android,Json,我试图打开一个Json文件,它位于res中的原始文件夹中 但是我尝试过的每个方法都失败了,我只需要字符串,因为我已经可以解析JsonStrings 这是我的Json阅读器 public class Parser extends Activity { public String getStringFromJson(String path) { StringBuffer sb = new StringBuffer(); BufferedReader br =

我试图打开一个Json文件,它位于res中的原始文件夹中

但是我尝试过的每个方法都失败了,我只需要字符串,因为我已经可以解析
Json
Strings

这是我的
Json
阅读器

public class Parser extends Activity {
    public String getStringFromJson(String path) {
        StringBuffer sb = new StringBuffer();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(getAssets().open(path)));
            String temp;
            while ((temp = br.readLine()) != null)
                sb.append(temp);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close(); // stop reading
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
}
它在以下行中失败:

br=new BufferedReader(新的InputStreamReader(getAssets().open(path))

这就是logcat所说的:

02-03 10:44:13.440 2374-2374/com.example.ealcazar.kolibry E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ealcazar.kolibry/com.example.ealcazar.kolibry.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.BufferedReader.close()' on a null object reference
有没有更简单的方法来阅读Json?尝试访问原始文件夹中的文件时应使用什么路径


非常感谢。

替换这些代码行

br = new BufferedReader(new InputStreamReader(getAssets().open(path)));
用这些

br = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.json));//Here json is the name of the file which is placed inside the RAW folder in yours resource

Parser.this.getResources()
=>
getResources()
。。。您不需要
解析器。这个
有时会在@Selvin处抛出异常。。我使用了ClassName.getResource()而不是getResource()方法..感谢您的建议:)有时它会抛出异常。。。如果你懂java,根本不可能。。。这是个例外吗?还是编译时错误。。。你这样调用类中的每个方法<代码>类C{void r(){}void t(){}void main(){C.this.r();C.this.t();}}}
heheehehew你怎么想。。在访问资源之前使用CLASSNAME.this是一种不好的做法吗?谢谢你的回答,但问题还没有解决,至少现在它似乎知道文件在哪里,崩溃仍然在同一行,日志现在是:02-03 11:05:38.740 12864-12864/com.example.ealcazar.kolibry E/AndroidRuntime:java.lang.RuntimeException:无法启动活动组件信息{com.example.ealcazar.kolibry/com.example.ealcazar.kolibry.MainActivity}:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void java.io.BufferedReader.close()”。我的问题是我将res文件夹与assets文件夹混淆,而且我获得了错误的上下文。我在Android Studio中创建了一个资产文件夹,并通过将其声明为静态并在onCreate(mainActivity.context.getResources)中分配,从我的mainActivity中获取了上下文