【发布时间】:2018-11-02 19:17:29
【问题描述】:
我正在使用 Java,我有一些类似这样的 JSON:
{
"objectList" : [{...}, {...}, ...],
"metadata" : {...}
}
我想要做的是将列表和对象作为 JSON 字符串。所以基本上,我想把这个 JSON 反序列化成这样的对象:
{
"objectList" : "[{...}, {...}, ...]",
"metadata" : "{...}"
}
所以我可以对这些字符串做进一步的处理。
最好的方法是什么?
我对尝试使用字符串解析来提取我需要的数据犹豫不决,因为这些对象中的值可能会影响它的解析方式。
【问题讨论】:
-
为什么您认为如果数据是字符串而不是解析的结构化值,处理数据会更容易?您想进一步处理什么?
-
@aman 这是 Java,不是 JavaScript!
-
@aman 我需要将 JSON 对象中的对象转换为字符串类型,而不是将整个 JSON 对象转换为字符串
-
@JBNizet 我有各种类型的元数据对象的类,所以我想将其反序列化为更具体的形式(例如,视频元数据与活动元数据)。这些类型的元数据包含不同的字段,所以我想获取元数据对象的字符串,确定它是元数据的类型,然后反序列化为所需的元数据类型。
-
然后将其解析为 JSONObject(或您的解析器使用的任何通用类),然后要求解析器将该 JSONObject 解析为您的类。或者阅读您的 JSON 解析器的文档以允许直接将其解析为正确的类。 Jackson 可以使用字段值来决定它应该创建什么类:fasterxml.github.io/jackson-annotations/javadoc/2.9/com/…。这个例子是 XY 问题的典型例子:不要问你认为正确的解决方案,而是要问如何解决你面临的实际问题。
标签: java json deserialization