在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
时出现错误:
处理程序崩溃,错误无效字符' /'寻找价值的开端
有人能告诉我如何解析这个吗?
答案 0 :(得分:6)
严格JSON specification,不允许发表评论。
但是存在JSON的非官方超集允许评论(以及更多其他很酷的事情),例如JSON5或HJSON(human-json)。
您可以尝试使用这些Go库:
答案 1 :(得分:1)
是的,这是无效的JSON。
我找到了解决方案:
for _, v:= range s {
if len(strings.TrimSpace(v)) > 3 {
if strings.TrimSpace(v)[:1] != "/" {
t = t + v
}
} else {
t = t + v
}
}
答案 2 :(得分:-2)
我在go中编写了一个简单的json取消注释器,该注释支持行注释。 在解组之前使用它。
// f is a raw io.Reader
newReader := jsonuncommenter.RemoveComment(f)
jsonParser := json.NewDecoder(newReader)
var s seeds
jsonParser.Decode(&s)