golang変数json
JSON (JavaScript Object Notation) は軽量のデータ交換形式です。人間にとっては読み書きが容易であり、コンピュータにとっても解析と生成が容易です。ただし、JSON にはキーの型が文字列でなければならないという制限があります。これは、複雑なデータ構造を渡したり解析したりする必要がある場合、JSON の操作が少し難しくなる可能性があることを意味します。
Go 言語には、interface{}
型の型なし変数を使用する、この問題を解決するツールがあります。この機能を使用すると、キー名を知らなくても任意の構造を作成できます。この記事では、golang で型なし変数を使用して JSON を記述する例を見ていきます。
不定型変数
不定型変数を理解するには、まず型変換に関する基本的な知識を理解する必要があります。 Go 言語では、明示的および暗黙的な型変換を通じて、値をある型から別の型に変換できます。たとえば、string
を int
に変換したり、int
を float
に変換したりできます。
不定型変数は、任意の型の値を含めることができる未割り当ての型変数です。このタイプの変数は、さまざまなタイプのデータを処理する必要がある場合に非常に便利です。型なし変数を使用すると、ネストされたキーと値のペアを含む未定義のキー名を持つ JSON を書き込むことができます。
不定型変数の作成
不定型変数を作成する最も簡単な方法は、宣言されていない構文を使用することです。たとえば、次のステートメントは、#xx という名前の型なし変数を作成します。
var x interface{}
変数には型が割り当てられていないため、割り当てることができます。任意の型 値: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>x = 42 // int
x = "hello" // string
x = true // bool</pre><div class="contentsignin">ログイン後にコピー</div></div>
不定型変数の操作
不定型変数には任意の型の値を含めることができるため、その値にアクセスするには型アサーションを使用する必要があります。たとえば、
x 変数に int 値が含まれていることがわかっている場合は、次の型アサーションを使用して、それを新しい i
変数に割り当てることができます。 x
変数に含まれる値の型を判断するには、型スイッチと
ステートメントを使用してその型をテストできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>i := x.(int)</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のコードは次のようになります。出力 x
変数の型と値。
無限に型指定された変数の制限無限に型指定された変数は非常に便利ですが、いくつかの制限もあります。型なし変数は格納されている型情報を失うため、その値を直接算術演算や比較演算の対象にすることはできません。たとえば、次のコードは正しくありません。
switch v := x.(type) { case int: fmt.Printf("x is an int with value %v ", v) case string: fmt.Printf("x is a string with value %v ", v) default: fmt.Printf("x is of type %T ", v) }
上記の例では、コンパイラは
x変数と
y 変数の型を認識しないため、次のコードを実行できません。算術演算。これを回避するには、型アサーションを使用して #xx と
y を対応する型に変換します。
x := 42 y := 50 z := x + y // Error: invalid operation: x + y (mismatched types interface {} and interface {})
不定型変数の JSON の記述
不定型変数を使用すると、不定のキー名を持つ JSON を簡単に作成できます。型なし変数を使用して、入れ子になったキーと値のペアを持つ JSON を作成する例を見てみましょう。
x := 42 y := 50 z := x.(int) + y.(int)
interface{}
タイプのキーと値を使用してキーと値のペアを動的に追加します。次に、ネストされたキーと値のペアを保存するための別の空のマップを作成します。最後に、ネストされたマップをキーと値のペアとしてメイン マップに追加し、json.Marshal()
関数を使用して JSON 文字列にエンコードします。上記のコードを実行すると、次の JSON 文字列が出力されます:
package main import ( "encoding/json" "fmt" ) func main() { data := make(map[string]interface{}) data["name"] = "Alice" data["age"] = 29 data["email"] = "alice@example.com" address := make(map[string]interface{}) address["city"] = "New York" address["state"] = "NY" data["address"] = address jsonString, _ := json.Marshal(data) fmt.Println(string(jsonString)) }
生成された JSON 文字列には、ネストされたキーと値のペアが含まれていることがわかります。これらはキーと同じ方法で表されます。マップ内の -value ペア。この例では、キー名を知らなくても、型なし変数を使用して複雑な JSON データ構造を記述する方法を示します。
結論この記事では、Go 言語で型なし変数を使用して複雑な JSON データ構造を記述する方法を学びました。この目標を達成するために、型なしの変数とマップを使用します。これにより、任意のキー名を持つネストされたキーと値のペアを簡単に作成できます。型なし変数にはいくつかの制限がありますが、さまざまな種類のデータを制御する場合に非常に便利で役に立ちます。 Go 言語で 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プログラミングのGo FMTコマンドについて説明します。これは、公式スタイルのガイドラインに準拠するためのコードをフォーマットします。コードの一貫性、読みやすさ、およびスタイルの議論を削減するためのGO FMTの重要性を強調しています。 Best Practices fo

この記事では、Debianシステムの下でPostgreSQLデータベースを監視するためのさまざまな方法とツールを紹介し、データベースのパフォーマンス監視を完全に把握するのに役立ちます。 1. PostgreSQLを使用して監視を監視するビューPostgreSQL自体は、データベースアクティビティを監視するための複数のビューを提供します。 PG_STAT_REPLICATION:特にストリームレプリケーションクラスターに適した複製ステータスを監視します。 PG_STAT_DATABASE:データベースサイズ、トランザクションコミット/ロールバック時間、その他のキーインジケーターなどのデータベース統計を提供します。 2。ログ分析ツールPGBADGを使用します

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