# 💡 Summary
加了 @JsonRawValue 之后,Jackson 会把这个字符串当成「已经序列化好的 JSON 片段」直接嵌进去,不再加外面那一层引号。
### @JsonRawValue
**`@JsonRawValue` = "这个字段里装的就是 JSON,直接拿出来用,别给我加引号转义"**
就像你买了一个礼盒装的商品,普通情况下 Jackson 会把它再包一层;加了 `@JsonRawValue` 后,Jackson 直接把礼盒里的东西拿出来,不再多此一举地包装。
```
数据库存: "# 测试周末游玩 \n ## 第一天 \n ### 吃饭 \n ## 第二天\n ### 喝酒"
用了 JsonRawValue "contentList": "# 测试周末游玩 \n ## 第一天 \n ### 吃饭 \n ## 第二天\n ### 喝酒"
不用JsonRawValue "contentList": "\"# 测试周末游玩 \\n ## 第一天 \\n ### 吃饭 \\n ## 第二天\\n ### 喝酒\""
```
## 换行
```
这样:
1. DB 存的是真正的换行符 \n(ASCII 10),而不是 \ + n;
2. Java 读出来是带换行的字符串;
3. Jackson 序列化后,JSON 里会看到 \n(这是换行符的转义表示);
4. 前端解析后,JS 字符串里就是“真正的换行”,放进 textarea 或你的 parseMarkdownToData 就能正常按行解析。
```
# 🧩 Cues
# 🪞Notes