为了账号安全,请及时绑定邮箱和手机立即绑定

如何解析带有注释的 JSON?

如何解析带有注释的 JSON?

Go
回首忆惘然 2022-01-17 17:54:57
在go标准包encoding/json中公开json.Unmarshal了解析 JSON 的函数。我有一个这样的 JSON:{    ...    "tyo": {        "ping_only": true,        "addresses": [            //"155.133.245.25:27015-27050",            //"155.133.245.26:27015-27050",            //"155.133.245.27:27015-27050",            "45.121.186.20:27015-27016",            "45.121.186.21:27015-27016"        ]    },    "vie": {        "addresses": [            "185.25.182.225:27015-27050",            "185.25.182.226:27015-27050"        ]    },    ...}当我使用json.Unmarshal我得到错误:处理程序因错误无效字符“/”而崩溃,正在寻找值的开头有人可以告诉我如何解析这个吗?
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

严格的JSON 规范,不允许评论。

但是存在允许评论(以及更多其他很酷的东西)的非官方 JSON 超集,例如JSON5HJSON(human-json)。

你可以试试这些 Go 库:


查看完整回答
反对 回复 2022-01-17
?
当年话下

TA贡献1890条经验 获得超9个赞

是的,这是无效的 JSON。


我找到了一个解决方案:


for _, v:= range s {

    if len(strings.TrimSpace(v)) > 3 {

        if strings.TrimSpace(v)[:1] != "/" {

            t = t + v

        }

    } else {

        t = t + v

    }

}


查看完整回答
反对 回复 2022-01-17
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

我在支持行注释中写了一个简单的 json 取消注释器。在解组之前使用它。


    // f is a raw io.Reader

    newReader := jsonuncommenter.RemoveComment(f)


    jsonParser := json.NewDecoder(newReader)

    var s seeds

    jsonParser.Decode(&s)

https://github.com/wuxiangzhou2010/jsonuncommenter


查看完整回答
反对 回复 2022-01-17
  • 3 回答
  • 0 关注
  • 264 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信