2015-09-05 72 views
-1

我正在逆向工程一些似乎使用匿名字段名稱的JSON。例如: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) 
} 

回答

5

的數據就解碼成圖(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