java - 使用 Jackson 将 Java 集序列化为 JavaScript 对象
问题描述
我有一套Java:Set<String> mySet = Set.of("a", "b", "c");
Jackson 将其序列化为一个 JavaScript 数组["a", "b", "c"]
。
但是在 JavaScript 方面,我想检查具有最佳性能并使用语法的值mySet["a"]
。因此,我希望将 Java Set 序列化为 JavaScript 对象{"a": true, "b": true, "c": true}
你会怎么做?Jackson 是否有一个我可以使用的现有序列化程序@JsonSerialize
?
解决方案
从评论:
不,杰克逊没有现有的序列化器
但这应该这样做:
public class SetToObjectSerializer extends JsonSerializer<Set> {
@Override
public void serialize(Set set, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeStartObject();
for (Object element : set) {
gen.writeObjectField(element.toString(), "true");
}
gen.writeEndObject();
}
}
作为替代方案,可以在 Java 端序列化之前或 JavaScript 端反序列化之后调整数据结构。
推荐阅读
- javascript - TypeError:无法读取未定义的属性“id”(也是“startWith”)
- python - 拆分文本而不分开,例如“纽约”
- javascript - 如何验证 IP 地址以确保用户在四部分中输入 3 位数字?
- ios - NSAttributed 字符串文档类型问题
- angular - 将一系列嵌套的 Promise 转换为 @Effect
- mapping - 什么是使用mapc的现实例子?
- java - 解组 XML 并存储到 Multimapping
- r - 捕获下一个方法的输出
- regex - 在bash中匹配单词后的一行中打印特定字符串
- r - 使用带有投影坐标系的 dist2isobath 函数(marmap 包)时出现问题