JSON Unterminated对象在角色android

时间:2016-05-02 08:33:24

标签: java android json parsing

我有一个包含JSON数据的.json文件。我只需按Ctrl + C和Ctrl + V(从服务器输出)创建此文件这是我文件的一部分

[{
    "ID": "109",
    "objectTypeID": "1",
    "names": [{
        "ID": 1,
        "code": "lt",
        "value": "Trak\u0173 salos pilis "
    }, {
        "ID": 2,
        "code": "en",
        "value": "Trakai Island Castle"
    }, {
        "ID": 3,
        "code": "ru",
        "value": "\u0422\u0440\u0430\u043a\u0430\u0439\u0441\u043a\u0438\u0439 \u0437\u0430\u043c\u043e\u043a"
    }, {
        "ID": 4,
        "code": "de",
        "value": "Kasteel van Trakai"
    }],
    "descriptions": [{
        "ID": 1,
        "code": "lt",
        "value": "<div><strong>Paslap\u010di\u0173 m\u0117g\u0117jams ir ie&scaron;kotojams<\/strong><\/div>\r\n\r\n<div>Tiems, kurie domisi istorija, kurie m\u0117gsta paslaptingas vietoves, \u012f Trakus atkeliauti b\u016btina. Trak\u0173 pilis yra vienas labiausiai turist\u0173 lankom\u0173 objekt\u0173 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":"Trak\u0173 salos pilis "},...... 我认为此文件中缺少格式化。

1 个答案:

答案 0 :(得分:1)

您的每个"Restaurant "Avilys""类似数据都无效,您必须将"Restaurant Avilys"替换为仅使用两个引号引用的单个字符串值的所有数据。还有许多类似的案例。请注意,您发布的部分显然是有效的,可以轻松解析,这里没有这样的错误。