2

タイプの問題に遭遇しましたが、ドキュメントから引き出された JSON 文字列を GOlang の SimpleJson に取得しようとしています (再び..)

次のエラーが表示されます。

関数の引数で []byte 型として document[0] (uint8 型) を使用することはできません

バグが発生する行は次のとおりです。

js, err := simplejson.NewJson(document[0])

誰かがこれを修正するのを手伝ってくれませんか?また、型と変換について読むことができる良い場所はありますか? 型を持たない php と変換が簡単な python から来た GO は、この面で少し混乱しています。

ありがとう :-)

4

1 に答える 1

6

まず第一に、uint8は単純に のエイリアスですbyte。したがって[]uint8、 と同じ[]byteです。

エラー メッセージが示すのは、ドキュメント [0] のタイプがタイプであり、タイプuint8ではないことです。[]byte

あなたのコメントから、それdocumentstring. []バイトに変換するだけです。JSON データ自体に配列が含まれている場合、 JSON 配列の最初の値を取得する前に、まずドキュメントを解析する (NewJson に渡す) 必要があります。

したがって、代わりにコードを次のように変更します。

js, err := simplejson.NewJson([]byte(document))
// error testing
jsonArray, err := js.Array()
// more error testing
fmt.Println(jsonArray[0])

(パッケージをインポートしたと仮定しますgithub.com/xiocode/toolkit/simplejson。simplejson.NewJsonで見つけた唯一のもの)

于 2013-07-04T10:54:11.880 に答える