如何使用Jackson Streaming API处理自定义布尔字符串

时间:2011-07-13 22:21:10

标签: java json jackson

我正在使用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/,但在这种情况下似乎没有用。

1 个答案:

答案 0 :(得分:2)

我建议你向Jackson项目提交一个请求,为ALLOW_UNQUOTED_VALUES添加一个JsonParser.Feature。 (问题可以在http://jira.codehaus.org/browse/JACKSON提交。)这将允许您处理输入并提供自定义反序列化。就像现在一样,杰克逊将抛出一个例外而不提供处理这个问题的机会,我能说清楚。