别混淆 Java 中 Map & JSON

1. Map | JSON

Map 是一种数据结构,即一种组织数据的方式;而 JSON 是一种规范。
Java 中 Map 和 JSON 数据是不一样的,即使看上去像。

{name=hobe, age=10} // Map打印出来的结果
{"name":"hobe", "age":"10"} //JSON格式

如上可以看出,至少 JSON 的 Key 是有双引号的字符串。

2. JSON in Java

原生 Java 是不支持 JSON 的,需要借助第三方 JSON 框架将 Map 等数据结构转化为 JSON 数据,如 Jackson、Fastjson 等 JSON 框架。需要在项目文件中引入对应的依赖包。

3. @RestController

Spring 框架搭建 Web 服务时,使用 RestController 注解,如下所示。

@RestController
public Map fun() {
  Map res = new HashMap<>();
  ...
  return res;
}

我们会发现即使函数 fun 返回值是 Map 数据,但是前端收到的响应依然是 JSON 数据,这是因为注解 @RestController 底层使用 Jackson 将 Map 封装成了 JSON数据。

4. Jackson、Fastjson

Jackson、Fastjson 等 JSON 框架,其底层其实还是 HashMap。

你可能感兴趣的:(别混淆 Java 中 Map & JSON)