我试图解析包含JSON数据的文件:
[
{"a" : "1"},
{"b" : "2"},
{"c" : "3"}
]
Run Code Online (Sandbox Code Playgroud)
由于这是一个带有动态密钥的JSON数组,我想我可以使用:
type data map[string]string
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用以下方法解析文件map:
c, _ := ioutil.ReadFile("c")
dec := json.NewDecoder(bytes.NewReader(c))
var d data
dec.Decode(&d)
json: cannot unmarshal array into Go value of type main.data
Run Code Online (Sandbox Code Playgroud)
解析包含JSON数据的文件的最简单方法是将数组(只有字符串类型的字符串)转换为Go结构?
编辑:为了进一步详细说明接受的答案 - 我的JSON确实是一组地图.为了使我的代码工作,该文件应包含:
{
"a":"1",
"b":"2",
"c":"3"
}
Run Code Online (Sandbox Code Playgroud)
然后它可以读成一个 map[string]string
Mar*_*vac 21
试试这个:http://play.golang.org/p/8nkpAbRzAD
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
)
type mytype []map[string]string
func main() {
var data mytype
file, err := ioutil.ReadFile("test.json")
if err != nil {
log.Fatal(err)
}
err = json.Unmarshal(file, &data)
if err != nil {
log.Fatal(err)
}
fmt.Println(data)
}
Run Code Online (Sandbox Code Playgroud)
Ste*_* P. 14
这是因为你的json实际上是一组地图,但是你正试图将其解组为a map.尝试使用以下内容:
type YourJson struct {
YourSample []struct {
data map[string]string
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37445 次 |
| 最近记录: |