如何从“raw”文件夹中的本地JSON文件创建“JSONObject”。
我的android app项目的“raw”文件夹下有以下JSON文件。该文件名为“app_currencies.json”。我需要在我的课程中将此文件中包含的信息作为对象。以下是文件内容:
{
"EUR": { "currencyname":"Euro", "symbol":"EUR=X", "asset":"_European Union.png"},
"HTG": { "currencyname":"Haitian Gourde", "symbol":"HTG=X", "asset":"ht.png"},
"WST": { "currencyname":"Samoan Tala", "symbol":"WST=X", "asset":"ws.png"},
"GBP": { "currencyname":"British Pound", "symbol":"GBP=X", "asset":"gb.png"}
}
我认为我需要的是使用以下内容:
//Get data from Json file and make it available through a JSONObject
InputStream inputStream = getResources().openRawResource(R.raw.app_currencies.json);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JSONObject jObject = new JSONObject;
我需要jObject 。我想我需要一个InputStream,ByteArrayOutputStream以便我可以将它存储到JSONObject中......问题是我不确定如何正确实现这段代码以便我可以访问数据?如果你们中的任何一个人能够详细说明如何做到这一点,我将非常感激。
答案 0 :(得分:0)
以下代码将json文件读入Json数组。看看它是否有帮助。请注意,该文件存储在Assets中
BufferedReader reader = null;
try {
// open and read the file into a StringBuilder
InputStream in =mContext.getAssets().open(mFilename);
reader = new BufferedReader(new InputStreamReader(in));
StringBuilder jsonString = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
// line breaks are omitted and irrelevant
jsonString.append(line);
}
// parse the JSON using JSONTokener
JSONArray array = (JSONArray) new JSONTokener(jsonString.toString()).nextValue();
// do something here if needed from JSONObjects
for (int i = 0; i < array.length(); i++) {
}
} catch (FileNotFoundException e) {
// we will ignore this one, since it happens when we start fresh
} finally {
if (reader != null)
reader.close();
}