在Go中解析多个JSON对象
使用encoding/json包简化了Go中的JSON解析。虽然它可以轻松处理 JSON 对象数组,但在解析具有多个对象的 JSON 响应时会出现挑战,例如:
{"something":"foo"} {"something-else":"bar"}
提供的代码尝试通过将出现的 }{ 替换为 } 来手动转换输入, {,但这种方法无效。
要解决此问题,需要使用 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) } }
此解决方案可以优雅地处理输入中的多个 JSON 对象,确保它们准确的解析和反序列化。
以上是如何在Go中高效解析多个JSON对象?的详细内容。更多信息请关注PHP中文网其他相关文章!