4

Go の主要な主題専門家の 1 人である Dave Cheney は次のように書いています。セミコロン規則の結果."

しかし、その美しいルールを JSON テキストに適用しようとすると、パーサーはこの哲学に同意しないようです。以下のコードでは、コンマを削除すると機能します。diff に要素を追加したときに 1 行の変更だけが表示されるように、これを修正する方法はありますか?

package main

import (
    "fmt"
    "encoding/json"
)

type jsonobject struct {
    Objects []ObjectType `json:"objects"`
}

type ObjectType struct {
    Name string `json:"name"`
}

func main() {
    bytes := []byte(`{ "objects": 
        [ 
            {"name": "foo"}, // REMOVE THE COMMA TO MAKE THE CODE WORK!
        ]}`)
    jsontype := &jsonobject{}
    json.Unmarshal(bytes, &jsontype)
    fmt.Printf("Results: %v\n", jsontype.Objects[0].Name) // panic: runtime error: index out of range
}
4

2 に答える 2