使用该encoding/json包可以很容易地解析如下对象。
encoding/json
[ {"something":"foo"}, {"something-else":"bar"} ]
我面临的问题是从服务器返回多个命令,如下所示:
{"something":"foo"} {"something-else":"bar"}
无法使用以下代码进行解析。
correct_format := strings.Replace(string(resp_body), "}{", "},{", -1) json_output := "[" + correct_format + "]"
我正在尝试解析Common Crawl数据(请参阅示例)。
我怎样才能做到这一点?
假设您的输入确实是一系列有效的JSON文档,请使用json.Decoder对其进行解码:
package main import ( "encoding/json" "fmt" "io" "log" "strings" ) var input = ` {"foo": "bar"} {"foo": "baz"} ` type Doc struct { Foo string } func main() { dec := json.NewDecoder(strings.NewReader(input)) for { var doc Doc err := dec.Decode(&doc) if err == io.EOF { // all done break } if err != nil { log.Fatal(err) } fmt.Printf("%+v\n", doc) } }
游乐场:https://play.golang.org/p/ANx8MoMC0yq
如果您的输入确实是您在问题中显示的内容,则不是JSON,您必须编写自己的解析器。