有没有办法从 Go 中的给定 JSON 中提取 JSON Schema?

有没有办法将 JSON 转换为 Go 中的模式?我需要比较 2 个 JSON 模板或模式,但找不到任何包或功能来做同样的事情 - 有人可以帮我吗?



小怪兽爱吃肉
浏览 158回答 3
3回答

撒科打诨

你可以看看gjson library。它具有解析和获取未编组的 JSON 的功能。您可以使用gjson功能来比较 json 结果。

慕无忌1623718

我认为您将需要将unmarshal它们递归(如果它们包含嵌套的 json)转换为类似的内容map[string]interface{},然后循环遍历并比较键。在这个问题上提到了一些库https://stackoverflow.com/a/42153666可以unmarshal安全地使用它们。例如,您可以Exists在遍历未编组映射中的键时使用 gabs 库,以查看其他映射中是否存在相同的键。// From gabs library// Exists checks whether a field exists within the hierarchy.func (g *Container) Exists(hierarchy ...string) bool {    return g.Search(hierarchy...) != nil}编辑:这里没有库:https: //play.golang.org/p/jmfFsLT0G1n基于此代码高尔夫练习的测试用例:https ://codegolf.stackexchange.com/questions/195476/extract-all-keys-来自对象 json

慕虎7371278

Go 的标准库中提供的 json 包为我们提供了我们需要的所有功能。对于任何 JSON 字符串,解析它的标准方法是:import "encoding/json" //...// ...  myJsonString := `{"some":"json"}`// `&myStoredVariable` is the address of the variable we want to store our // parsed data in json.Unmarshal([]byte(myJsonString), &myStoredVariable) //...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go