Java 有没有办法将JSON中的对象视为字符串?

Java 有没有办法将JSON中的对象视为字符串?,java,json,deserialization,Java,Json,Deserialization,我在Java中工作,我有一些类似于以下内容的JSON: { "objectList" : [{...}, {...}, ...], "metadata" : {...} } { "objectList" : "[{...}, {...}, ...]", "metadata" : "{...}" } 我要做的是将列表和对象作为JSON字符串获取。基本上,我想将这个JSON反序列化为如下对象: { "objectList" : [{..

我在Java中工作,我有一些类似于以下内容的JSON:

{
    "objectList" : [{...}, {...}, ...], 
    "metadata" : {...}    
}
{
    "objectList" : "[{...}, {...}, ...]", 
    "metadata" : "{...}"    
}
我要做的是将列表和对象作为JSON字符串获取。基本上,我想将这个JSON反序列化为如下对象:

{
    "objectList" : [{...}, {...}, ...], 
    "metadata" : {...}    
}
{
    "objectList" : "[{...}, {...}, ...]", 
    "metadata" : "{...}"    
}
所以我可以对这些字符串做进一步的处理

最好的方法是什么


我不敢尝试使用字符串解析来提取所需的数据,因为这些对象中的值可能会影响解析的方式

如果我是你,我会使用一些JSON解析库(比如Gson)将你的JSON转换成
JsonObject
。然后,您可以使用
JsonObject\getAsString
字符串的形式获取
objectList
的值:

String json = "{\n" +
              "    \"objectList\" : \"[{...}, {...}, ...]\", \n" +
              "    \"metadata\" : \"{...}\"    \n" +
              "}";

JsonObject jsonObject = new Gson().fromJson(json, JsonObject.class);

System.out.println(jsonObject.get("objectList").getAsString());
输出:

[{...}, {...}, ...]

为什么您认为如果数据是字符串而不是经过解析的结构化值,那么处理它会更容易?你想做什么进一步的处理?@aman这是Java,不是JavaScript@aman我需要将JSON对象中的对象转换为字符串类型,而不是将整个JSON对象转换为字符串类型string@JBNizet我有各种类型的元数据对象的类,所以我想将其反序列化为更具体的形式(例如,视频元数据与活动元数据)。这些类型的元数据包含不同的字段,因此我想获取元数据对象的字符串,确定元数据的类型,然后反序列化为所需的元数据类型。然后将其解析为JSONObject(或解析器使用的任何泛型类),然后让解析器将该JSONObject解析为您的类。或者阅读JSON解析器的文档,以便直接将其解析到正确的类。Jackson可以使用字段值来决定它应该创建什么类:。这个例子是XY问题的一个典型例子:与其问你认为正确的解决方案,不如问你如何解决你面临的实际问题。啊,这看起来是一个很好的方法。你知道有没有办法用Jackson Object Mapper实现这一点吗?我肯定有,但我从来没有用过Jackson;我可能再也帮不了你了,明白了。我将进一步研究,但这似乎是最好的方法。谢谢