我正在使用 Jackson 的 Streaming API 来解析 JSON 字符串。我需要支持“YES”作为 boolean 类型。
JsonFactory f = new JsonFactory();
然后做
JsonParser jp = f.createJsonParser(jsonString);
然后循环 jp.nextToken() 部分。寻找必要的起始部分并跳入其中,根据需要创建我的数组/ map 。这对于所有常见的嫌疑人来说都非常有效。但是,当我点击时出现异常:
{ "a": false, "b": Yes }
我需要支持“是/否”,因为它来自另一个系统。
有什么建议吗?我试过这个http://hussainpithawala.wordpress.com/2011/05/11/overriding-default-serializationdeserialization-behaviour-of-jackson-json-serializer/但这在这种情况下似乎不起作用。
最佳答案
我建议您向 Jackson 项目提交请求,为 ALLOW_UNQUOTED_VALUES 添加 JsonParser.Feature。 (问题可以在 http://jira.codehaus.org/browse/JACKSON 提交。)这将允许您处理输入并提供自定义反序列化。按照目前的情况,据我所知, jackson 将抛出异常,并且不会提供处理问题的机会。
关于java - 如何使用 Jackson Streaming API 处理自定义 boolean 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686399/