问题标签 [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 投票
10 回答
361011 浏览

java - 如何将 JSON 字符串转换为 Map与杰克逊 JSON

我正在尝试做这样的事情,但它不起作用:

但是 IDE 说:

未经检查的分配Map to Map<String,String>

这样做的正确方法是什么?我只使用杰克逊,因为这已经在项目中可用,是否有一种本地 Java 方式来转换为 JSON 或从 JSON 转换?

在 PHP 中,我会简单地json_decode($str)返回一个数组。我在这里需要基本相同的东西。

0 投票
2 回答
5507 浏览

java - 没有内部类的 Json Jackson 反序列化

我有一个关于使用 Jackson 进行 Json 反序列化的问题。我想使用类似这样的类来反序列化 Json 文件:(取自http://wiki.fasterxml.com/JacksonInFiveMinutes

可以通过这种方式使用所谓的“完整数据绑定”对 Json 文件进行反序列化:

我的问题是内部类“名称”的使用。我想在不使用内部类的情况下做同样的事情。“用户”类会变成这样:

这意味着找到一种方法来向映射器指定所有必需的类以执行反序列化。

这可能吗?我查看了文档,但找不到任何解决方案。

我的需求来自于我使用 Javassist 库来创建这样的类,并且它不支持内部类或匿名类。

先感谢您

0 投票
3 回答
2889 浏览

json - 使用 Jackson 处理未知的 JSON 属性

对于将具有未知字段的 json 反序列化为对象,可以使用 @JsonAnySetter。

但是,如果我将这样的 json 读入我的对象,修改一些已知字段并将其写回 json 怎么办?未知属性将丢失。

我该如何处理这种情况?是否可以映射对象或者我必须将数据读入 JsonNode 或 Map?

0 投票
1 回答
1614 浏览

android - 警告:此类可能是由损坏的编译器生成的

我已将 Jacson 库添加到我的 android 项目中,现在我在控制台中收到这样的警告:

警告:忽略不带有关联 EnclosureMethod 属性的匿名内部类的 InnerClasses 属性。(此类可能是由损坏的编译器生成的。)

我试图重新编译库,但没有帮助。当我从项目中删除这些库时,警告消失了。设备上一切正常,但这让我很恼火;)

你知道有什么解决办法吗?我正在使用 Eclipse。

0 投票
4 回答
7943 浏览

java - 杰克逊 - 动态抑制属性的序列化(写入)

我正在尝试使用 Jackson 将 java 对象转换为 Tomcat/jersey 中的 JSON 对象。并希望动态抑制某些属性的序列化(写入)。

我可以使用 JsonIgnore,但我想在运行时做出忽略决定。有任何想法吗??

因此,作为下面的示例,当我将 User 对象序列化为 JSON 时,我想抑制“id”字段。

0 投票
2 回答
4010 浏览

java - Android 与 Restlet/JSON/Jackson 的兼容性

我目前正在开发适用于 Android 的网络服务客户端。我正在使用一个 Java 客户端库,它提供了与服务交互的抽象。客户端库在普通机器上工作。但是,当我在我的 Android 项目中使用这些类时,某些调用不会在 Android 上返回结果,后台服务在这些命令的第一个处停止工作。Wireshark 显示一个 tcp 交换,服务器获取请求。没有例外或任何事情。序列化/反序列化接缝中的某些内容不起作用。我正在使用最新版本的 Jackson 库(1.5.3)和 android 版本中的 restlet jar。Jackson 和 Android 是否存在任何已知问题?哪些代码和库与 Android 兼容?

0 投票
1 回答
2217 浏览

java - 如何在杰克逊 json 库中进行 peek()?

我正在使用Jackson库的Streaming API JsonParser在java 中进行一些自定义 json 解析。

有没有一种方法可以实现类似于peek()方法的功能,其中返回下一个标记但光标位置不向前移动?

其用例类似于以下内容:

我为 Jackson 看到的代码示例使用nextToken()了上述情况的方法,不幸的是,它也在流中向前移动了光标。

peek()开箱即用的杰克逊是否有可能,或者可以通过其他方法实现?

注意。对其他图书馆不感兴趣,所以请不要“图书馆 x 做所有这些,厨房水槽”类型的答案。

0 投票
2 回答
15110 浏览

java - 杰克逊不承认@JsonCreator 注释

我目前正在使用 Jackson 1.4.2 并尝试对code从我们的 UI 传递回 Java 控制器 (Servlet) 的值(类型信息的唯一标识符)进行反序列化。

有多种类型(例如ABCType,XYZType等)都从 扩展而来AbstractType,但每个具体类型都有一个静态工厂方法,该方法接受一个参数、一个唯一标识符,并返回类型对象(名称、关联类型、描述、该标识符表示的有效首字母缩略词等)。每个具体类型(例如XYZType)中的静态方法都用 注释@JsonCreator

我看到的问题是杰克逊的映射器试图将 json 反序列化为这些类型时抛出的异常:

原因:org.codehaus.jackson.map.JsonMappingException:没有找到类型[简单类型,类com.company.type.XYZtype]的默认构造函数:无法从Json对象实例化。

我在这里对@JsonCreator静态工厂方法的注释缺少什么(或者它与杰克逊 1.4.2 与从一个扩展的具体类型作斗争AbstractType?)?

0 投票
5 回答
21046 浏览

json - 如何避免 HashMap 中的空值序列化?

我想通过 Jackson JSON 处理器将 HashMap 序列化为字符串。例如:

我不知道如何禁用 Map 的空值序列化。如果像这样配置杰克逊,它只适用于 POJO:

0 投票
1 回答
12690 浏览

json - 如何反序列化并转换为 Long 所有数字?

如果值在整数范围内,杰克逊将反序列化并转换为整数,而不是转换为长整数。我想将所有值转换为 Long。是否存在简单的问题解决方案?