@CompiledJson
public class Name {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Map<String,String> properties = new HashMap<String,String>();
public Name() {
// TODO Auto-generated constructor stub
}
@JsonAnyGetter
public Map<String, String> get() {
return this.properties;
}
@JsonAnySetter
public void set(String key, String value) {
this.properties.put(key, value);
}
使用DSLJson serialize()和deserialize()方法解/序列化。我也没有看到任何错误,但在JSON中properties仍然为null。我怀疑DSL JSON是否支持Jackson注释。:/
带有DSL、Json和Jackson注释的Spring Boot应用程序
更新我想解析MyClass,它是RootClass的一部分:
@Compiledjson
public class RootClass {
private String id;
private List<MyClass> myclass;
private AnotherCLass class2;
//getters and setter here
}
@CompiledJson
public class MyClass implements JsonObject {
private String name;
private Map<String, String> properties; //want this to behave like Jackson's @JsonAnySetter/Getter annotation.
//The implementation of MapConverter serializer you mentioned below.
}
{
"id" : "1234",
"myclass" :
[
{
"name" : "abcd",
//any dynamic properties I want to add will go here
"test" : "test1",
"anything" : "anything"
}
],
"class2" : "test5"
}
谢谢:)
DSL-JSON不支持这样的get()/set(string,string)方法对。它确实理解map
properties
,它就会在这方面起作用。但不是在这种情况下。
从V1.1开始,您有两个解决此类问题的选项,这两个选项都包含在示例项目中
如果您希望重用现有转换器,您的解决方案可以如下所示:
public static class MyClass {
private String name;
private Map<String, String> properties;
@JsonConverter(target = MyClass.class)
public static class MyClassConverter {
public static final JsonReader.ReadObject<MyClass> JSON_READER = new JsonReader.ReadObject<MyClass>() {
public MyClass read(JsonReader reader) throws IOException {
Map<String, String> properties = MapConverter.deserialize(reader);
MyClass result = new MyClass();
result.name = properties.get("name");
result.properties = properties;
return result;
}
};
public static final JsonWriter.WriteObject<MyClass> JSON_WRITER = new JsonWriter.WriteObject<MyClass>() {
public void write(JsonWriter writer, MyClass value) {
MapConverter.serialize(value.properties, writer);
}
};
}
}
我在使用Jackson1.9.13(和Jackson2.5.0)进行序列化/反序列化时遇到了一个问题,现在已经解决了几天了,没有任何成功。 我的目标是使用@jsonanygetter&@jsonanysetter,我想动态地计算对象是否应该写入输出。我有一个用ObjectMapper序列化的JSON定义(并检查是否应该包含对象),然后将对象转换回字符串。 为此,我使用了一个“HidableSeri
上面的代码不会编译为错误: 错误[E0277]: trait绑定
通过我所做的所有搜索,我明白了使用jackson序列化/反序列化包含混合内容的xml是有问题的。有人知道用Java处理以下xml的方法吗? 我正在使用以下POJO: 如果节点有混合内容,如上例所示,我将得到以下错误: 如果节点具有纯文本,则反序列化工作。 我尝试使用JsonNode、TextNode、ObjectNode、Object代替String作为数据类型。我尝试了自定义序列化程序和反序列化
问题内容: 最近,我一直在进行相当多的JSON解析,并在Node.js和浏览器中传递Javascript,并遇到了这个难题。 我使用构造函数创建的任何对象都无法通过JSON.stringify进行完全序列化,除非我单独初始化构造函数中的所有值!这意味着我的原型在设计这些类时实际上变得毫无用处。 有人可以阐明为什么以下内容没有按我期望的那样进行序列化吗? 怎么了: a_string == {“ in
问题内容: 使用Jackson 2,我正在寻找一种 通用的 方式将对象序列化为单个值(然后序列化它们,然后再填充该单个字段),而不必重复创建JsonSerializer / JsonDeserializer来处理每种情况。@JsonIdentityInfo批注非常接近,但由于我知道,它将始终对完整的子对象进行序列化,因此略微遗漏了该标记。 这是我想做的一个例子。给定的类: 我希望Order可以序列
问题内容: 我有以下用于序列化查询集的代码; 以下是我的 我需要序列化。但是它说无法序列化。因为列表由Django对象和字典组成。有任何想法吗 ? 问题答案: 并且不能很好地与Django对象配合使用。 Django的内置序列化器只能序列化由django对象填充的查询集: 在您的情况下,其中包含django对象和dict的混合。 一种选择是摆脱中的模型实例,并使用dict将其替换为: 希望有帮助。