fix(后端):extraNodes 解析兼容字符串和对象两种格式

AI 可能返回 [字符串] 或 [{title:...,path:...}] 两种格式,
buildCompareResultFromAI() 现在通过 isTextual() 判断并分别处理
This commit is contained in:
2026-07-04 16:52:09 +08:00
parent 55b7c1c83c
commit cca51530c6
@@ -270,14 +270,21 @@ public class StandardMindMapServiceImpl implements StandardMindMapService {
}
}
// 4. 读取 extraNodes
// 4. 读取 extraNodes(兼容字符串数组和对象数组两种格式)
List<CompareResult.FlatNode> extras = new ArrayList<>();
JsonNode extrasArr = aiJson.path("extraNodes");
if (extrasArr.isArray()) {
for (JsonNode e : extrasArr) {
CompareResult.FlatNode fn = new CompareResult.FlatNode();
fn.setTitle(e.path("title").asText(""));
fn.setPath(e.path("path").asText(""));
if (e.isTextual()) {
// 字符串格式 ["知识点D1", "知识点D2"]
fn.setTitle(e.asText(""));
fn.setPath("");
} else {
// 对象格式 [{ title: "...", path: "..." }]
fn.setTitle(e.path("title").asText(""));
fn.setPath(e.path("path").asText(""));
}
extras.add(fn);
}
}