我正在使用Jackson的Streaming API来解析JSON字符串。我需要支持“YES”作为布尔类型。
JsonFactory f = new JsonFactory();
然后做
JsonParser jp = f.createJsonParser(jsonString);
然后循环jp.nextToken()片段。寻找必要的起始片并跳入,根据需要创建我的阵列/地图。这适用于所有常见的嫌疑人。但是,当我点击时,我得到一个例外:
{ "a": false, "b": Yes }
我需要支持Yes / No,因为这是来自另一个系统。
有什么建议吗?我试过这个http://hussainpithawala.wordpress.com/2011/05/11/overriding-default-serializationdeserialization-behaviour-of-jackson-json-serializer/,但在这种情况下似乎没有用。
答案 0 :(得分:2)
我建议你向Jackson项目提交一个请求,为ALLOW_UNQUOTED_VALUES添加一个JsonParser.Feature。 (问题可以在http://jira.codehaus.org/browse/JACKSON提交。)这将允许您处理输入并提供自定义反序列化。就像现在一样,杰克逊将抛出一个例外而不提供处理这个问题的机会,我能说清楚。