ホームページ >バックエンド開発 >Golang >`json` パッケージを使用して Go で JSON 配列を正しく解析するにはどうすればよいですか?

`json` パッケージを使用して Go で JSON 配列を正しく解析するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 21:52:18357ブラウズ

How to Correctly Parse JSON Arrays in Go Using the `json` Package?

JSON パッケージを使用した Go での JSON 配列の解析

json パッケージを使用して Go で JSON 配列を表す文字列を解析しようとすると、一部の開発者は、Unmarshal 関数でエラーが発生する可能性があります。この記事では、解決策を提供し、代替アプローチを紹介します。

元のコード:

type JsonType struct {
    Array []string
}

func main() {
    dataJson := `["1","2","3"]`
    arr := JsonType{}
    unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array)
    log.Printf("Unmarshaled: %v", unmarshaled)
}

問題:
Unmarshal によって返されたエラー予想される配列の代わりに出力されます。これを解決するには、Unmarshal 関数を次のように変更する必要があります:

err := json.Unmarshal([]byte(dataJson), &arr)

Unmarshal の戻り値はエラーであり、適切に処理する必要があります。

簡略化されたアプローチ:
コードを簡素化するために、JsonType 構造体を削除し、スライスを使用できます。直接:

package main

import (
    "encoding/json"
    "log"
)

func main() {
    dataJson := `["1","2","3"]`
    var arr []string
    _ = json.Unmarshal([]byte(dataJson), &arr)
    log.Printf("Unmarshaled: %v", arr)
}

ポインターを使用する利点 (オプション):
Unmarshal で変数にポインターを渡すと、特に処理においてメモリの最適化と潜在的なパフォーマンスの向上が可能になります。同じ変数が再利用されるコンテキスト

結論:
Unmarshal 関数を変更し、スライスを直接使用することで、開発者は json パッケージを使用して Go で JSON 配列を効果的に解析できます。変数を Unmarshal に渡すときにポインターを使用すると、特に処理シナリオでメモリ使用量をさらに最適化できます。

以上が`json` パッケージを使用して Go で JSON 配列を正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。