使用 Jackson 将 JSON 字符串解析为原始 Java 类型?

Joh*_*hsm 1 java json jackson

我想以最简单的方式解析一些代表数组或映射的 JSON 字符串。我有整个 JSON 字符串,不需要流式传输。

我想做的是尽可能类似于这样的事情:

Object obj = parseJSON(theString);
Run Code Online (Sandbox Code Playgroud)

其中 obj 将保存 Map 或 List 的实例(我无法提前知道是哪个)。JSON 对象可以任意嵌套映射和数组,但所有类型都可以表示为基本 Java 类型:String、Integer、Double、Boolean 加上 Map 和 ArrayList,仅此而已。

到目前为止,我发现的所有简单示例都要求我知道类型是什么以及我想要哪些类型,但我想让所有这些都由 JSON 解析器完成,因为我根本不会提前知道我会得到什么。

如果 Jackson 不是执行此操作的最佳库,我还能使用什么?

Vid*_*dya 5

您需要做的就是:

ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = mapper.readValue(theString, Map.class);
Run Code Online (Sandbox Code Playgroud)

我很确定这会返回 a LinkedHashMap,如果你关心的话。

在我看来,对于 Java <-> JSON,您不会找到比 Jackson 更好的序列化器/反序列化器。但还有很多其他的,比如GSON