我有一个包含JSON数据的.json
文件。我通过简单的Ctrl+C和Ctrl+V(从服务器输出)创建了这个文件
[{
"ID": "109",
"objectTypeID": "1",
"names": [{
"ID": 1,
"code": "lt",
"value": "Traku0173 salos pilis "
}, {
"ID": 2,
"code": "en",
"value": "Trakai Island Castle"
}, {
"ID": 3,
"code": "ru",
"value": "u0422u0440u0430u043au0430u0439u0441u043au0438u0439 u0437u0430u043cu043eu043a"
}, {
"ID": 4,
"code": "de",
"value": "Kasteel van Trakai"
}],
"descriptions": [{
"ID": 1,
"code": "lt",
"value": "<div><strong>Paslapu010diu0173 mu0117gu0117jams ir ieškotojams</strong></div>rnrn<div>Tiems, kurie domisi istorija, kurie mu0117gsta paslaptingas vietoves, u012f Trakus atkeliauti bu016btina. Traku0173 pilis yra vienas labiausiai turistu0173 lankomu0173 objektu0173 Lietuvoje......"
}]
}]
我已使用utf-8
编码保存此文件正如您所看到的,有很多Unicode Characters
和html元素,如<div>
、<strong>
等等。。。。现在我想解析这个文件。这是我的java/android代码
private String getJSONString(File file){
try {
FileInputStream is = new FileInputStream(file.getAbsolutePath());
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
return new String(buffer, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private void object_parser(File file){
String jsonString = getJSONString(file);
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(jsonString);
Log.d("OBJECTS_LIST_AAA", jsonArray.toString());
} catch (JSONException e) {
Log.d("OBJECTS_LIST_ERROR", e.getMessage()); // print error
e.printStackTrace();
}
}
}
我得到这个错误Unterminated object at character 5641 of [{"ID":"109","objectTypeID":"1","names":[{"ID":1,"code":"lt","value":"Traku0173 salos pilis "},......
我认为这个文件中缺少格式化。
您的每个类似"Restaurant "Avilys""
的数据都是无效的,您必须将它们全部替换为仅用两个引号引用的单个字符串值"Restaurant Avilys"
。类似的案例还有很多。请注意,你发布的部分显然是有效的,可以很容易地解析,这里没有这样的错误。