gpt4 book ai didi

JSON:序列化 Guava optional

转载 作者:行者123 更新时间:2023-12-04 21:59:40 25 4
gpt4 key购买 nike

com.google.common.base.Optional 是否有 Json Serializer/Deserializer?

开箱即用,这似乎不适用于 Jackson,请参见下文:

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}}

最佳答案

确实有Guava module对于 GitHub 上的 Jackson,但不支持 Optional(尚)。似乎是一个相当简单的序列化器/解串器来实现;该行为应该与@JsonUnwrapped 非常相似,因此对于您的简单测试,结果应该是:

{"myString":"testString"}

对于 Optional.absent 序列化形式应该是:

{"myString":null}

更新 : 看起来很简单,所以我刚刚实现了它并将其推送到 GitHub。您可以通过官方 repo 获取它并从源代码构建,或者等待下一个正式版本。享受!

关于JSON:序列化 Guava optional ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com