golang が JSON 形式を処理する方法
Golang は、効率性、シンプルさ、信頼性の高さで広く人気があり、人気が高まっているプログラミング言語です。 Golang には JSON (JavaScript Object Representation) と呼ばれるデータ形式があり、Web アプリケーションでデータの送信や交換によく使用されます。この記事では、Golang を使用して JSON 形式を処理する方法を説明します。
まず、Golang の JSON に関する基本的な知識を理解する必要があります。 Golang では、JSON パッケージにはすでに JSON エンコードとデコードのサポートが組み込まれています。 JSON エンコードは Golang のデータ構造を JSON 形式に変換し、JSON デコードは JSON 形式のデータを Golang のデータ構造に変換します。 JSON 形式には次の基本ルールがあります。
- JSON データはキーと値のペアの形式である必要があります。
- データはカンマで区切られ、中括弧 {} または角括弧 [] で囲まれる必要があります。
- キーは二重引用符 "" で囲む必要があり、値には文字列、数値、ブール値、配列、またはオブジェクトを使用できます。
ここで、Golang を使用して JSON 形式を処理してみましょう。まず、JSON エンコードに次のメソッドを使用する必要があります。
func Marshal(v interface{}) ([]byte, error)
この関数は、インターフェイス タイプのデータ構造を JSON 形式の []byte スライスに変換します。この関数では、任意の Golang データ構造をパラメータとして渡し、それを JSON 形式のデータに変換できます。以下はサンプル コードです:
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { user := User{Name: "zhangsan", Age: 20} userJson, err := json.Marshal(user) if err != nil { fmt.Println("error:", err) } fmt.Println(string(userJson)) }
このサンプル コードでは、名前と年齢の 2 つのフィールドを含むユーザー タイプ構造を定義します。ユーザー オブジェクトをインスタンス化し、json.Marshal 関数を呼び出して構造を JSON 形式にエンコードします。最後に、userJson を文字列型に変換して JSON 文字列を出力します。
次に、JSON デコードを使用して JSON 形式のデータを Golang データ型に変換する方法を検討します。 Golang では、JSON デコードに次のメソッドを使用できます。
func Unmarshal(data []byte, v interface{}) error
この関数は、JSON 形式のデータを Golang データ型に変換し、インターフェイス型の変数に格納します。この関数では、JSON 形式のデータと、デコードされた Golang データ型を保存するために使用されるインターフェイス型変数の 2 つのパラメーターを渡す必要があります。以下にサンプルコードを示します。
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { userJson := []byte(`{"name":"zhangsan","age":20}`) var user User err := json.Unmarshal(userJson, &user) if err != nil { fmt.Println("error:", err) } fmt.Println(user.Name, user.Age) }
このサンプルコードでは、User 型の構造体を定義し、Unmarshal 関数を使用して JSON 形式のデータを Golang データ型に変換し、変数に user に格納します。ユーザーの名前と年齢のフィールドを印刷することで、デコードされたデータが正しいかどうかを確認できます。
最後に、Golang で JSON のネストされたデータ型を処理する方法を見てみましょう。 JSON では、オブジェクトを任意の深さまでネストできます。以下はサンプル コードです。
package main import ( "encoding/json" "fmt" ) type Address struct { Street string `json:"street"` City string `json:"city"` } type User struct { Name string `json:"name"` Age int `json:"age"` Address Address `json:"address"` } func main() { userJson := []byte(`{ "name":"zhangsan", "age":20, "address":{ "street":"Shanghai Street", "city":"Shanghai" } }`) var user User err := json.Unmarshal(userJson, &user) if err != nil { fmt.Println("error:", err) } fmt.Println(user.Name, user.Age, user.Address.Street, user.Address.City) }
このサンプル コードでは、名前、年齢、および Address タイプの入れ子構造を含む User タイプの構造を定義します。 JSON 文字列を入力として定義し、 json.Unmarshal 関数を使用してそれを Golang データ型にデコードします。 user.Address.Street および user.Address.City を通じて、ネストされた構造内のデータにアクセスできます。
要約すると、Golang は JSON 形式のデータを処理する場合に非常に便利で、JSON エンコードとデコードのサポートが組み込まれており、多くの便利なメソッドと関数を提供します。 Golang の JSON の基本原理を理解することで、アプリケーションで JSON データ形式を簡単に使用できるようになります。
以上がgolang が JSON 形式を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

この記事では、go.modを介してGOモジュールの依存関係の管理、仕様、更新、競合解決をカバーすることについて説明します。セマンティックバージョンや定期的な更新などのベストプラクティスを強調しています。

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および
