问题标签 [jackson]

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.

0 投票
3 回答
16201 浏览

java - Jackson:自定义集合序列化为 JSON

我正在尝试使用一个属性对类 MyRootClass 进行 json 序列化,该属性是第二类 MyClass 的元素集合:

以下代码:

生成此 JSON 输出:

而不是我需要的,集合中的每个对象都用一个名称序列化:

有没有办法使用杰克逊来实现它?我考虑过编写一个自定义序列化程序,但我没有找到与对象集合相关的任何内容。

0 投票
14 回答
65042 浏览

java - spring mvc 不返回 json 内容 - 错误 406

我正在使用带有 JSON 的 Spring MVC,如Ajax Simplification Spring 3.0 文章中所述

根据在各种论坛上找到的建议对我的代码进行了如此多的尝试和变体之后,我的代码仍然无法正常工作。

我不断收到以下错误:(406)此请求标识的资源只能生成具有根据请求“接受”标头()不可接受的特征的响应。

根据需要,我在我的 appconfig.xml 中有。

应用程序配置.xml

mvc-config.xml

这就是我的控制器所拥有的

jsp jquery调用

我非常感谢您对此问题的任何意见。谢谢

0 投票
3 回答
11254 浏览

json - 之后使用 Spring 的 @RequestBody 并读取 HttpServletRequest.getInputStream()

我正在使用 Spring 的@RequestBody注释将我的请求的 JSON POST 数据映射到一个对象中MappingJacksonHttpMessageConverter。但是在那之后,我想读取String表单中的数据以进行一些额外的身份验证。但是当编组发生时,InputStreaminHttpServletRequest是空的。一旦我@RequestBody从方法中删除参数,将 POST 数据读入 aString就可以按预期工作。

我是否必须通过放弃@RequestBody并以某种方式手动进行绑定来妥协,还是有更优雅的解决方案?

0 投票
2 回答
34135 浏览

java - Jackson:忽略 Json 配置值

我有以下 json 文件:

但是java模型如下:

当 Jackson 解析时,它会引发异常,因为“externalId”字段没有 getter 或 setter。是否有可以用来忽略 json 字段的装饰器?

0 投票
4 回答
16485 浏览

java - 将 JSON 子对象属性绑定到 Jackson 中的 Java 对象字段

我有一个 JSON 对象,比如:

我想将它绑定到一个Java对象中,比如:

如何将foo.barJSON的值设置为Java 对象bar中的字段?Foo

我试过用 注释该字段@JsonProperty("foo.bar"),但它不是那样工作的。

0 投票
3 回答
2383 浏览

spring-mvc - 尝试从端点检索 JSON 时出现 406 错误

我看到了其他几个类似的问题,但它们并不完全符合要求。

我目前正在尝试从两个不同的控制器返回 JSON。在我的一个控制器中,它可以正常工作,但是当我到达第二个端点时,我收到 406 错误,我不知道出了什么问题。这是控制器动作:

这是我试图返回的模型:

从控制器代码中可以看出,我的 ResultsList 由 CompanyResult 对象组成:

所以我的控制器返回了一个@RequestBody ResultsList,它带有@XmlElement注解,并且列表中包含的对象也带有@XmlElement注解。这是我必须做的才能让其他场景正常工作。但是这个失败了。谁能告诉我为什么?

0 投票
1 回答
11555 浏览

string - 如何用杰克逊序列化长字符串?

杰克逊将 long x = 1234 序列化为 {x:1234} 出于几个原因,我需要 {x:"1234"}

任何杰克逊注释?

谢谢。

0 投票
1 回答
16178 浏览

java - 当 Restlet 应该返回 400 Bad Request 时,它是否返回 415 Unsupported Media Type?

我正在使用带有杰克逊的 Restlet 2.1 来构建一个 json REST api。

当我使用预期的内容类型但正文格式错误的请求时,我会返回 415“不支持的媒体类型”状态代码。我认为正确的错误代码应该是 400 "Bad Request"。

显然,当杰克逊尝试解码垃圾但未能解码时,就会发生混淆。

我将尝试使用一些代码使案例更清楚:

使用 curl 调用服务

以及日志中记录的堆栈跟踪操作系统片段:

服务的实际实现永远不会受到影响,因此在某个地方做出了将乱码内容映射到 415 的决定。

现在,我的问题是:这是正确的吗?如果我正确阅读“RESTful Web Services”一书中的以下引语,那不是,但我愿意更正。

[400 Bad Request] 通常在客户端提交表示连同 PUT 或 POST 请求时使用,并且表示格式正确,但没有任何意义。

.

[415 Unsupported Media Type] 如果客户端发送的文档具有正确的媒体类型但格式错误(例如使用错误词汇表编写的 XML 文档),则更好的响应是更通用的 400(“错误请求”)

对或错,我宁愿退回400。

有没有办法在不放弃杰克逊提供的自动魔法序列化的情况下改变行为?

非常感谢任何帮助,谢谢!

0 投票
2 回答
6561 浏览

java - 如何在杰克逊和 Gson 之间转换日期?

在我们的 Spring 配置的 REST 服务器中,我们使用 Jackson 将对象转换为 Json。该对象包含几个 java.util.Date 对象。

当我们尝试使用 Gson 的 fromJson 方法在 Android 设备上反序列化它时,我们会得到一个“java.text.ParseException: Unparseable date”。自 1970 年以来,我们尝试将日期序列化为与毫秒对应的时间戳,但得到了相同的异常。

是否可以将 Gson 配置为将时间戳格式的日期(例如 1291158000000)解析为 java.util.Date 对象?

0 投票
3 回答
10197 浏览

java - 如何向 Wink 客户端注册 Jackson 提供程序?

我正在尝试设置一个玩具应用程序(有一天它可能会变成一个真正的应用程序)。我遇到了 Wink 和 Jackson 的问题。我有两个应用程序:一个在码头上运行 wink-server,似乎可以提供一些 JSON 数据;一个在码头上运行 wink-client 并接收 JSON 数据就好了。问题在于将 JSON 数据自动反序列化回我的 Java bean。

这是我在 wink 客户端操作中使用的代码:

这是我尝试运行 Struts 操作时收到的错误:

如果我用以下行替换第一个代码片段中的最后一行,一切正常且花花公子。

很明显,数据传输得很好,但问题似乎在于 JacksonJsonProvider 类未向 Wink 客户端注册这一事实。我已经看到了很多向 Wink 服务器注册提供程序的方法,但不是 Wink 客户端。

是否可以使第一个代码段正常运行?如果是这样,怎么做?

(顺便说一句,另一个问题可能是我的用户类缺少注释。现在没有。也许我需要一些......)