我正在 go 程序中执行一个命令,该命令为我提供了一些带有结构的输出 c := exec.Command("mycommand") stdout, _ := c.Output()输出{ 'name': 'mike', 'phone': '12345'},{ 'name': 'jim', 'phone': '1234'}, //notice the final comma为了使 json 有效,我尝试先[添加然后附加],最后删除最后一个逗号。k := "["mystring := string(stdout)k += mystringk += "]"str := strings.Replace(k, "},]", "}]", -1)w.Header().Set("Content-Type", "application/json; charset=utf-8")fmt.Fprintf(w, str)当我将最终产品放入 json 验证器时,出现此错误Error: Parse error on line 1:[{ ---^Expecting 'STRING', '}', got 'undefined'问题:有没有办法在字符串上执行 json.Compact 或类似的操作,或者在这种情况下如何制作有效的 json?更新这是我的编码魔法产生的输出。我不确定它到底是哪一部分invalid[{ 'name': 'Leroy', 'phone': '12345'},{ 'name': 'Jimmy', 'phone': '23456'}]
1 回答
FFIVE
TA贡献1797条经验 获得超6个赞
正如 JimB 在评论中指出的,单引号不是有效的 json。所以如果你运行另一个字符串替换k = strings.Replace(k, `'`, `"`, -1)来产生这个;
[{
"name": "Leroy",
"phone": "12345"
}, {
"name": "Jimmy",
"phone": "23456"
}]
然后它应该像你期望的那样工作。
- 1 回答
- 0 关注
- 174 浏览
添加回答
举报
0/150
提交
取消