XStream解析没有根节点的JSON

Jos*_*ger 6 java json xstream

我目前正在使用XStream对JSON进行反序列化,并且它一直运行良好.但是,当我有如下JSON字符串时

{
    key1: { an_object: { something: 'foobar' } },
    key2: { another_object: { data: 'hi' }
}
Run Code Online (Sandbox Code Playgroud)

最值得注意的是它没有根节点,我不知道如何解析它.基本上,我希望DROP_ROOT_NODE与反序列化相反.

Chs*_*y76 4

简短的回答是“你不能”。

XStream 需要知道要实例化哪个类,它从 JSON(或 XML)数据中获取该知识。类名可以有别名,但不能省略。您可以通过以下方式解决:

  1. 使用包含类名(或别名)的根节点手动包装 JSON 字符串
  2. 编写你自己的阅读器来为你做这件事。但是,在这种情况下,您仍然需要显式或按约定将您的类名(别名)传递给该读取器(例如,始终在前面添加“root”,但然后将其配置为 XStream 实例中您的类的别名) - 所以我不这样做我不认为这比#1 更干净。