如何从原始文件夹中获取json文件?

mac*_*tte 4 android json inputstream jackson

我想使用我的raw文件夹中的user.json来获取一个新文件:

// read from file, convert it to user class
User user = mapper.readValue(new File(**R.raw.user**), User.class);
Run Code Online (Sandbox Code Playgroud)

我发现InputStream可以这样做:

InputStream ins = res.openRawResource(
                        getResources().getIdentifier("raw/user",
                                "raw", getPackageName()));
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来直接使用我的json文件ID?

Noo*_*ani 7

InputStream is = getResources().openRawResource(R.raw.json_file);
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
    Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    int n;
    while ((n = reader.read(buffer)) != -1) {
        writer.write(buffer, 0, n);
    }
} finally {
    is.close();
}

String jsonString = writer.toString();
Run Code Online (Sandbox Code Playgroud)


ρяσ*_*я K 5

ObjectMapper.readValueInputStream作为来源。从json文件获取InputStream使用openRawResource方法,并将其传递给readValue

InputStream in = getResources().openRawResource(R.raw.user);
User user = mapper.readValue(in, User.class);
Run Code Online (Sandbox Code Playgroud)