try {
File yourFile = new File(Environment.getExternalStorageDirectory(), "textarabics.txt");
FileInputStream stream = new FileInputStream(yourFile);
String jsonStr = null;
try {
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
jsonStr = Charset.defaultCharset().decode(bb).toString();
Log.d("Noga Store", "jString = " + jsonStr);
}
finally {
stream.close();
}
Log.d("Noga Store", "jString = " + jsonStr);
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting data JSON Array nodes
JSONArray data = jsonObj.getJSONArray("data");
// looping through All nodes
for (int i = 0; i < data.length(); i++) {
JSONObject c = data.getJSONObject(i);
String id = c.getString("id");
String title = c.getString("title");
String duration = c.getString("duration");
// tmp hashmap for single node
HashMap<String, String> parsedData = new HashMap<String, String>();
// adding each child node to HashMap key => value
parsedData.put("id", id);
parsedData.put("title", title);
parsedData.put("duration", duration);
// do what do you want on your interface
}
} catch (Exception e) {
e.printStackTrace();
}
那时我正在崩溃:
JSONObject jsonObj = new JSONObject(jsonStr);
这是我的json文件进入我的SD卡:
{
"data": [
{
"id": "1",
"title": "Farhan Shah",
"duration": 10,
},
{
"id": "2",
"title": "Noman Shah",
"duration": 10,
},
{
"id": "3",
"title": "Ahmad Shah",
"duration": 10,
},
{
"id": "4",
"title": "Mohsin Shah",
"duration": 10,
},
{
"id": "5",
"title": "Haris Shah",
"duration": 10,
}
]
}
答案 0 :(得分:2)
{ "data": [ { "id": "1", "title": "Farhan Shah", "duration": 10, }, { "id": "2", "title": "Noman Shah", "duration": 10, }, { "id": "3", "title": "Ahmad Shah", "duration": 10, }, { "id": "4", "title": "Mohsin Shah", "duration": 10, }, { "id": "5", "title": "Haris Shah", "duration": 10, } ] }
此JSON无效"duration": 10,
最后还有一个额外的逗号。删除该逗号并尝试。
从每个对象中删除该逗号。修改后的JSON将如下所示。
{
"data": [
{
"id": "1",
"title": "Farhan Shah",
"duration": 10
},
{
"id": "2",
"title": "Noman Shah",
"duration": 10
},
{
"id": "3",
"title": "Ahmad Shah",
"duration": 10
},
{
"id": "4",
"title": "Mohsin Shah",
"duration": 10
},
{
"id": "5",
"title": "Haris Shah",
"duration": 10
}
]
}
答案 1 :(得分:0)
String jsonStr = "";
而不是
String jsonStr = null;