0

我通过 Web 服务获取了许多 JSON 对象,有时 json 对象格式不正确。

我想在处理它之前检查 json 是否有效。

所以我写

JsonElement jsonData = parser.parse(attacheddataattribute);
if(jsonData.isJsonObject()) 
                {
//then only process
}

也不是它在解析方法中抛出 com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 8432。

是否有任何实现可用于检查 JSON 的有效性。

4

2 回答 2

2

那是你的验证。无需调用任何服务。

如果该方法抛出MalformedJsonException它是格式错误的 JSON。

如果你愿意,你可以用类似的方法包装它

public boolean isValidJson(String json) {
    try {
        // parse json
        return true;
    } catch(MalformedJsonException e) {
        return false;
    }
}
于 2013-07-19T10:22:50.840 回答
0

我也遇到了 MalformedJsonException 崩溃,但在我的情况下,我需要使用 Throwable 添加一个 catch 块:

    fun jsonToList(value: String?): MutableList<String> {
        var objects: Array<String> = emptyArray()
        try {
            objects = Gson().fromJson(value, Array<String>::class.java)
        }catch (t: Throwable){

        }finally {
            return objects.toMutableList()
        }
    }
于 2019-05-15T22:07:10.620 回答