JSON在字符android处未终止对象



我有一个包含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&scaron;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"。类似的案例还有很多。请注意,你发布的部分显然是有效的,可以很容易地解析,这里没有这样的错误。

最新更新