2015-09-11 120 views
3

我想用我的user.json這是我的原始文件夾中得到一個新的文件:如何從原始文件夾中獲取json文件?

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

我發現的InputStream可以做到這一點:

InputStream ins = res.openRawResource(
         getResources().getIdentifier("raw/user", 
           "raw", getPackageName())); 

有沒有更好的辦法做到這一點,直接與我的json文件ID?

+1

有什麼錯'openRawResource(R.raw.user)'? – Blackbelt

+0

沒有錯,我只是想知道如果我可以使用不同的東西像R.raw而不是InputStream來獲得我的新文件 – machichiotte

回答

2

ObjectMapper.readValue也取InputStream作爲來源。從使用JSON文件openRawResource方法獲取InputStream,並把它傳遞給readValue

InputStream in = getResources().openRawResource(R.raw.user); 
User user = mapper.readValue(in, User.class); 
4
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(); 
+0

資產和原始的是不同的文件夾,不是嗎? – Blackbelt

+0

我編輯了我的答案 –

相關問題