com.google.common.base.Optional 是否有 Json 序列化器/反序列化器?
开箱即用的这似乎不适用于杰克逊,见下文:
package com.example;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import com.google.common.base.Optional;
public class TestClass {
public Optional<String> myString;
public TestClass() {
myString = Optional.of("testString");
}
public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
TestClass testClass = new TestClass();
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(testClass);
System.out.println(jsonString);
}
}
-> {“myString”:{“present”:true}}
确实有一个番石榴模块 https://github.com/FasterXML/jackson-datatype-guavaGitHub 上的 Jackson,但尚不支持可选。看起来像是一个相当简单的串行器/解串器来实现;行为应该与 @JsonUnwrapped 非常相似,因此对于您的简单测试,结果应该是:
{“myString”:“testString”}
对于Optional.absent,序列化形式应该是:
{“myString”:空}
Update:看起来很简单,所以我刚刚实现了它并将其推送到 GitHub。您可以通过官方存储库获取它并从源代码构建,或者等待下一个正式版本。享受!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)