-1

我有一段 json 字符串,我想提取特定字段,并且该字段存在我想将其反序列化为特定类型(类)。

到目前为止,我已经尝试过使用 ObjectMapper,但它的问题在于它设计为以将输入 json 值映射到指定类类型的方式工作。在我的情况下,我需要从 json 字符串中取出特定字段并将它们反序列化为对象。

接下来,我尝试了 JsonParser,它提供了更多选项,因为我可以逐个字段迭代 json 字段并为每个字段调用“readValueAs”方法。这对我来说几乎是完美的,我的问题是我不想逐个字段地遍历 json,我想动态地告诉解析器要解析哪个字段,然后才将其反序列化为一个对象。

这是我想要实现的示例:

说我有这个 json{ "name" : "Bob", "age" : 21, "status" : false }

我只想提取“名称”的值(Bob),然后将其反序列化为 java.lang.String

我怎样才能做到这一点??

编辑:我尝试更好地描述我的流程:当应用程序第一次加载时,我使用反射读取特定方法的参数,稍后当应用程序收到 json 消息时,我想以 json 中的每个键的方式解析消息对应于方法的一个参数。所以我需要将 json 中的键值反序列化为与该参数匹配的对象。

如果你知道 JAVA-8 中的反射机制,你可以像在代码中写的那样得到参数​​的类型和名称!

希望这能让它更清楚....不确定:-)

4

1 回答 1

0

最终我找到了答案,感谢我收到的帮助!!!

做我需要的正确方法是ObjectMapper#convertValue,它需要一个对象并返回一个 Class 类型的对象。它分两步完成:第一步将对象转换为 json 表示,第二步将其序列化为类。

于 2014-06-26T19:40:01.223 回答