我目前正在使用 XStream 反序列化 JSON,它运行良好。但是,当我有如下所示的 JSON 字符串时
{
key1: { an_object: { something: 'foobar' } },
key2: { another_object: { data: 'hi' }
}
最值得注意的是它没有根节点,我不确定如何解析它。基本上,我想要 DROP_ROOT_NODE 的反序列化。
最佳答案
简短的回答是“你不能”。
XStream 需要知道要实例化哪个类,它从 JSON(或 XML)数据中获取该知识。类名可以有别名,但不能省略。您可以通过以下方式解决:
- 使用包含类名(或别名)的根节点手动包装 JSON 字符串
- 编写您自己的阅读器来为您完成。但是,在这种情况下,您仍然需要将您的类名(别名)显式或按约定传递给该阅读器(例如,始终在前面加上“根”,然后在 XStream 实例中将其配置为您的类的别名)——所以我不我认为这比 #1 更干净。
关于java - XStream 解析没有根节点的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263356/