MCPcopy Create free account
hub / github.com/aurora-develop/aurora / robustJSON

Function robustJSON

internal/toolcall/parser.go:226–241  ·  view source on GitHub ↗

robustJSON 尽力把一段"看起来像 JSON"的字符串解析成 map[string]any。 依次尝试:反斜杠修复 → 完整解析 → 截取到第一个完整花括号后解析。

(s string)

Source from the content-addressed store, hash-verified

224// robustJSON 尽力把一段"看起来像 JSON"的字符串解析成 map[string]any。
225// 依次尝试:反斜杠修复 → 完整解析 → 截取到第一个完整花括号后解析。
226func robustJSON(s string) (map[string]any, bool) {
227 if s == "" {
228 return nil, false
229 }
230 repaired := fixLoneBackslashes(s)
231 if v, err := parseObject(repaired); err == nil {
232 return v, true
233 }
234 // 兜底:截到第一个完整 {} 区间
235 if end := firstBalancedObject(repaired); end > 0 {
236 if v, err := parseObject(repaired[:end+1]); err == nil {
237 return v, true
238 }
239 }
240 return nil, false
241}
242
243func parseObject(s string) (map[string]any, error) {
244 var v map[string]any

Callers 5

buildToolCallFromRawFunction · 0.85
marshalArgumentsFunction · 0.85
iterJSONObjectsFunction · 0.85

Calls 3

fixLoneBackslashesFunction · 0.85
parseObjectFunction · 0.85
firstBalancedObjectFunction · 0.85