问题标签 [jackson-databind]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何让 Jackson mixin 用于私有字段?
我正在尝试使用 Jackson 2.0 mixins 来序列化一个没有注释的类。
下面是简化的源代码。请注意,我没有使用 getter/setter,但根据文档,我似乎仍然可以使用 mixins 。
当我运行 main 我得到
当我按照异常中的说明添加一行时
我不再收到异常,但结果是一个空的 JSON 对象,{}
.
如果我将这些字段公开,它会起作用,但这不是我想做的事情,因为它不是一个合理的对象设计。
我猜我在某处遗漏了一个基本的“setThis”步骤,但不知道是什么。在这种情况下如何让 mixins 工作?
java - Jackson 中基于整数而非字符串的多态反序列化
通常,在使用杰克逊进行多态反序列化时,我有一个映射到一个类的字符串字段,并且可以这样做。
如果值是整数而不是字符串,我找不到任何简单的示例来说明如何执行此操作。例如,如果我的 JSON 包含“methodName”:1 而不是“methodName”:“firstClassName”,我将如何选择要反序列化的类?
java - Jackson 的 JsonSerializer 和线程安全
JsonSerializer
我的Spring 项目中有一个简单的:
并像这样使用它:
我是否必须注意线程安全并进行DATE_FORMAT
同步(因为SimpleDateFormat
不是线程安全的)?我不确定究竟是如何@JsonSerialize
工作的——它是否在所有线程中只创建一个序列化实例?或者它是否为每个转换创建单独的实例?
java - UnrecognizedPropertyException:无法识别的字段未在源标记为可忽略:org.apache.catalina.connector.CoyoteInputStream@14ec141
我正在制作休息网络服务,我的代码是:
但是当我用这个 Json 调用它时:
我收到以下异常:
javax.servlet.ServletException:org.codehaus.jackson.map.exc.UnrecognizedPropertyException:无法识别的字段“userId”(类 com.tazligen.model.GroupMemberMap),在 [来源:org.apache.catalina.connector。 CoyoteInputStream@14ec141; 行:2,列:15](通过引用链:com.tazligen.model.GroupMemberMap["userId"])
我的 GrouMemberMap 模型类是:
我尝试了另一种方法,就像这样:
带json
但这没问题:/
需要有人帮助。
java - 使用 Jackson 忽略 JSON 数组/集合中的无效对象
我正在使用 Jackson 反序列化包含自定义对象数组的网络响应。我使用 Builder 来实例化这些对象,它负责确保对象有效(存在必需的字段等)并在尝试构建无效对象时抛出 IllegalStateException。
当我反序列化这些对象的数组时,我希望能够忽略无效的数组,并且仍然返回一个包含有效数组的数组,而不是删除所有的数组。理想情况下,我希望有一个回调或某种错误处理程序,以便在发生这种情况时也可以进行自定义日志记录。
这是一个简短的例子:
java - Jackson:将嵌套的 json 对象存储为 JSONObject
此问题与Link重复,代码用作:
但是对于settings
链接中给出的,价值来自{}
. 如何解决这个问题?我想将嵌套对象用作 JSONObject。
java - 使用 Jackson 将 JSON 元素绑定到 Java 字段
是否可以将 JSON 字段映射到 POJO 中的 java 字段,如下所示-我的 JSON 是这样的-
我在下面的 POJO 中映射字段“类型”-
我不想根据传入的 JSON 编写 POJO,而是想使用限定名称绑定元素。我用谷歌搜索但找不到任何解决方案。
是否可以使用任何库?
java - 使用 Jackson 反序列化自定义 Map
我目前正在尝试使用 Jackson 2.8.4 将自定义 Map 类型序列化和反序列化为 JSON。我已经设法根据这个答案进行序列化,但我在反序列化方面苦苦挣扎。这是一个例子:
当我尝试如上所述反序列化时,出现异常:
所以杰克逊仍然试图将我的课程反序列化,就好像它是一个通用的Map
,因为它是一个 bean,所以它不起作用。我也尝试过添加@JsonDeserialize(as = TestMapGetters.class)
,但后来我得到:
这是有道理的,因为它不是子类型。我宁愿不必编写自定义反序列化器,因为如果我的对象不是Map
. 有什么办法可以告诉杰克逊忽略我的课程是 aMap
并且只是反序列化为 bean 的事实吗?
java - 强制杰克逊反向引用首先被解决
我有一个这样的 JSON 对象树:
在 Java 中,父类有一个标记为子类的列表,@JsonManagedReference
子类有一个对应的@JsonBackReference
. 我的问题是value
属性的 setter 方法取决于父级。可悲的是,在我所有的实验中,反向引用都是最后解决的,因此在设置值时子对象中的父字段仍然为空。有没有办法改变这个反序列化顺序?或者有没有另一种方法可以优雅地解决这个问题而不引入不必要的字段。
json - 如何在apache sling和neba环境中从spring控制器返回json数据
我正在使用Neba 库和Apache sling。
现在我的弹簧控制器可以正常使用此代码。
点击 url http://localhost:8080/bin/mvc.do/category/list 后
我得到回应“ Hello World! ”
但是当我试图像这样返回列表字符串时 -
我收到以下异常 -
我的图书馆里确实有杰克逊数据绑定
我还检查了 bundle jar 它在 lib 中有这些库。仍然不确定为什么它不起作用。任何帮助都是高度赞赏的。