我对某些似乎使用匿名字段名的JSON进行了反向工程。例如:
{
"1": 123,
"2": 234,
"3": 345
}
顺便说一句-它不是简单地使用“1”,“2”和“3”,因为它们表示最小int32的用户ID。
是否有某种方法,例如使用标签正确解组JSON?
我试过了:
package main
import (
"encoding/json"
"fmt"
)
type MyStruct struct {
string `json:",string"`
}
func main() {
jsonData := []byte("{\"1\":123,\"2\":234,\"3\":345}")
var decoded MyStruct
err := json.Unmarshal(jsonData, &decoded)
if err != nil {
panic(err)
}
fmt.Printf("decoded=%+v\n", decoded)
}
最佳答案
只需将数据解码为 map (map[string]int
):
jsonData := []byte("{\"1\":123,\"2\":234,\"3\":345}")
var decoded map[string]int
err := json.Unmarshal(jsonData, &decoded)
if err != nil {
panic(err)
}
然后,您可以通过用户ID密钥进行迭代并访问元素:
for userID, _ := range decoded {
fmt.Printf("User ID: %s\n", userID)
}
https://play.golang.org/p/SJkpahGzJY
关于json - JSON中的匿名字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32408249/