我有這樣一個JSON:Golang - 從文件解析未知JSON和迭代進去
{
"store_name": "Barry's Farmer's Market",
"foods": {
"apple": "5.91",
"peach": "1.84",
"carrot": "6.44",
"beans": "3.05",
"orange": "5.75",
"cucumber": "6.42"
},
"store_location": "Corner of Elm Tree Hill and 158th Street"
}
,我想用一個圖來解析它作爲一個未知的JSON [字符串]接口{}:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
func main() {
var parsed map[string]interface{}
f, err := ioutil.ReadFile("input.txt")
if err != nil {
fmt.Printf("Error: %v", err)
os.Exit(1)
}
err = json.Unmarshal(f, &parsed)
for k, v := range parsed {
//fmt.Println(parsed["foods"])
fmt.Println(k + string(v))
}
}
考慮到「v」不會轉換爲字符串,並且我想將「食品」中的所有值範圍,您能幫助我嗎?我想我錯過了一些東西......
不錯和完美。你認爲使用「反射」包來查找我是否有字符串或地圖[字符串]接口會是一個好主意嗎? –
如果你不知道結構是什麼,我會首先選擇[類型切換](https://golang.org/ref/spec#Switch_statements),如果你需要更多的靈活性,然後再回到反射。在大多數語言中,反思通常是最糟糕的選擇,包括Go。 – Adrian
我想我只會使用_string_和_map [string] interface_,所以類型切換非常有幫助。謝謝。 –