- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 Java java.util.Set
的 Comparable
我希望按升序序列化为 JSON 数组的类型。
有一个对象映射器功能可以序列化按映射键排序的映射,但没有提到 Java 集。如果我将元素存储在 java.util.Set
中在我的 POJO 中,将 Jackson ObjectMapper
以任何顺序将它们序列化为 JSON 数组?
如果没有,我正在考虑为此目的为集合编写一个自定义序列化程序 - 有人可以建议有更好的方法吗?
最终,目标是将唯一整数数组反序列化为“请求”pojo 中的某种容器。然后处理请求并将该输入字段传递到“响应”对象中相应的输出字段(未更改)。
我想将 POJO 中的数据存储为 java.util.Set<Integer>
只是为了让所有用户满意(如果您尝试将其存储为 Set
的子类型,那么 POJO 界面的消费者可能会因为他们不能只获得 Set
而必须期待 HashSet
或一个 TreeSet
)。
这行得通吗?
[5,4,3,2,1]
被反序列化为 Set<Integer>
但是,我使用 @JsonDeserialize(as=TreeSet.class)
在setter方法上。所以对象的运行时类型现在是 TreeSet
(即使它作为 Set
存储在 POJO 中)。Set
通过服务器传递并最终结束存储在响应 POJO 中(运行时类型仍然是 TreeSet
,即使 POJO 字段类型是 Set)。ObjectMapper
序列化 TreeSet
到 JSON 数组 [1,2,3,4,5]
(因为 TreeSet
是自然排序的)。上面的第 3 项是我想知道的 - will ObjectMapper
使用 POJO 字段的运行时类型,还是声明的类型?
如何确保我的 Set
是否按排序顺序转换为 JSON 数组?
最佳答案
A JSON数组是一个有序集合,就像 Java 数组一样:
An array is an ordered collection of values. An array begins with
[
(left bracket) and ends with]
(right bracket). Values are separated by,
(comma).
但是,已排序 并不意味着已排序。这只是意味着它保留给定值的顺序:
如果 Set
已排序(例如 TreeSet
),则 JSON 数组将排序,根据的排序顺序集合
:
TreeSet
: The elements are ordered using their natural ordering, or by aComparator
provided at set creation time, depending on which constructor is used.
如果 Set
是无序的(例如 HashSet
),则 JSON 数组按 任意 顺序由 设置
。
HashSet
: It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time.
这不同于 JSON 的字段对象:
An object is an unordered set of name/value pairs. An object begins with
{
(left brace) and ends with}
(right brace). Each name is followed by:
(colon) and the name/value pairs are separated by,
(comma).
关于java - Jackson ObjectMapper : Can java. util.Set 按升序序列化为 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144385/
这是我的设置: 带有自定义 MessageConverter 的 ObjectMapper 的 RestTemplate,它具有一些反序列化功能和问题处理程序 (Jackson Fasterxml 2
我们有一个基于 Spring 的应用程序,并且我们为 Jackson ObjectMapper 类定义了一个单例 bean。 @Bean(name = "jacksonObjectMapper") p
当依赖项中的 jar 中定义了另一个对象映射器时,如何使我的对象映射器工作? 我正在尝试使用 Swagger与 Jersey 2在 Jetty 下运行。问题是,一旦我将 Swagger JAX-RX
我刚刚更新到 Xcode 10.1 Swift 版本 4.2.1 我有几个构建错误: Invalid redeclaration of ' 3.3' $ pod 'ObjectMapper', '3.
您好,我是 IOS 开发的新手。我正在创建一个小应用程序。我正在尝试导入 ObjectMapper 但它没有找到任何模块。我已经安装了 pod。我的 pod 文件看起来像: target 'Sam
ObjectMapper 忽略字段大小写 核心代码: ObjectMapper mapper = new ObjectMapper(); mapper.configure(Deser
我加载一个资源文件json与文本格式 { "sources": [{ "prop1": "1", "prop2": "2" },
我有以下类(class): public class Car{ private String id; private String name; public Car() { } public Car(
使用 ObjectMapper 解析通用对象时出现错误这是我的类(class): class BaseResponse: NSObject, Mappable { var isSuccess:
我正在将印地语存储在数据库中。在我的 fetch 方法中,我使用 objectMapper 它将印地语字体转换为特殊字符。没有objectmapper它工作正常。 @CrossOrigin @
我正在尝试使用 Jackson ObjectMappper 将我的 Java POJO 转换为 Map。但是,在转换时,日期会更改为字符串。 这是我的 POJO: public class Sampl
我将日期传递为 "scoreTimestamp": "2015-04-15T10:00:00.000Z",并希望将此 json 作为字符串保存在数据库中,因此使用方法 ObjectMapper ob
使用 ObjectMapper 解析通用对象时出现错误这是我的类(class): class BaseResponse: NSObject, Mappable { var isSuccess:
我遇到了一个我不知道如何解决的问题。 当我尝试将此 JSON 映射到 User 对象时,它失败了: SwiftyJSON 在“2.3.3” JSON: { "results":[
我有一个自定义的 ObjectMapper 类。我想根据数据将元素映射到不同的对象类型。我已经实现了如下逻辑。但它没有给我值,只是 null。 class FeedObject : Object, M
我正在从服务器解析 json。我在 json 中获得了 4 个值,因此我创建了模型类 class PriceData: Mappable { var buy: Double? var sell: Do
我有这个映射器: import Foundation import ObjectMapper class Article: Mappable { var id: Int! var na
我有下面的一段代码,可以将带注释的 Java 对象转换为 Json 字符串。 try { String jsonString = mapper.writeValueAsStr
这个问题在这里已经有了答案: Jackson - Required property? (4 个答案) 关闭 7 年前。 假设我有这样的 json,我想将它反序列化为一个名为 SubscriberP
我有一个 JSON,我将其解析为结果对象列表。此对象包含 5 个字符串字段,称为 photo1、photo2 等。(基于 JSON)是否可以将它们直接读入列表字段? JSON 喜欢: { "E
我是一名优秀的程序员,十分优秀!