fix(后端):extraNodes 解析兼容字符串和对象两种格式
AI 可能返回 [字符串] 或 [{title:...,path:...}] 两种格式,
buildCompareResultFromAI() 现在通过 isTextual() 判断并分别处理
This commit is contained in:
+10
-3
@@ -270,14 +270,21 @@ public class StandardMindMapServiceImpl implements StandardMindMapService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. 读取 extraNodes
|
// 4. 读取 extraNodes(兼容字符串数组和对象数组两种格式)
|
||||||
List<CompareResult.FlatNode> extras = new ArrayList<>();
|
List<CompareResult.FlatNode> extras = new ArrayList<>();
|
||||||
JsonNode extrasArr = aiJson.path("extraNodes");
|
JsonNode extrasArr = aiJson.path("extraNodes");
|
||||||
if (extrasArr.isArray()) {
|
if (extrasArr.isArray()) {
|
||||||
for (JsonNode e : extrasArr) {
|
for (JsonNode e : extrasArr) {
|
||||||
CompareResult.FlatNode fn = new CompareResult.FlatNode();
|
CompareResult.FlatNode fn = new CompareResult.FlatNode();
|
||||||
fn.setTitle(e.path("title").asText(""));
|
if (e.isTextual()) {
|
||||||
fn.setPath(e.path("path").asText(""));
|
// 字符串格式 ["知识点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);
|
extras.add(fn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user