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

Function fixLoneBackslashes

internal/toolcall/parser.go:199–222  ·  view source on GitHub ↗

fixLoneBackslashes 把 JSON 字符串里"非合法转义"的反斜杠变成双反斜杠, 解决 Windows 路径(G:\src\x.py)、正则(\d+)把 json.loads 弄坏的问题。 合法转义(\"、\\、\/、\b、\f、\n、\r、\t、\u)保留原样。

(s string)

Source from the content-addressed store, hash-verified

197// 解决 Windows 路径(G:\src\x.py)、正则(\d+)把 json.loads 弄坏的问题。
198// 合法转义(\"、\\、\/、\b、\f、\n、\r、\t、\u)保留原样。
199func fixLoneBackslashes(s string) string {
200 var out strings.Builder
201 out.Grow(len(s) + 8)
202 for i := 0; i < len(s); i++ {
203 c := s[i]
204 if c != '\\' {
205 out.WriteByte(c)
206 continue
207 }
208 nxt := byte(0)
209 if i+1 < len(s) {
210 nxt = s[i+1]
211 }
212 if nxt != 0 && strings.IndexByte(`"\\/bfnrtu`, nxt) >= 0 {
213 out.WriteByte('\\')
214 out.WriteByte(nxt)
215 i++
216 continue
217 }
218 out.WriteByte('\\')
219 out.WriteByte('\\')
220 }
221 return out.String()
222}
223
224// robustJSON 尽力把一段"看起来像 JSON"的字符串解析成 map[string]any。
225// 依次尝试:反斜杠修复 → 完整解析 → 截取到第一个完整花括号后解析。

Calls 1

StringMethod · 0.80