golangスライスからjsonへ
Golang は、ネットワーク プログラミング、データ処理などで広く使用されている強力なプログラミング言語です。 Golang では、スライスは動的に拡大または縮小できる非常に一般的に使用されるデータ構造であり、可変量のデータ コレクションを処理するのに非常に適しています。スライスを JSON 形式にシリアル化する必要がある場合は、Golang 標準ライブラリで提供されている json パッケージを使用できます。
この記事では、Golang を使用してスライスを JSON 形式に変換する方法を紹介し、実際のコード例をいくつか示します。これにより、読者が Golang での JSON 変換テクノロジーをよりよく理解し、使用できるようになります。
- スライスの基本
Golang では、スライスは参照型であり、基になる配列へのポインタ、長さ、容量の 3 つの部分で構成されます。 make 関数を使用してスライスを作成し、その長さと容量を指定できます:
s := make([]int, 5, 10) // 创建一个长度为5,容量为10的切片
スライスを作成するとき、容量が指定されていない場合、デフォルトと長さは同じになります:
s := make([]int, 5) // 创建一个长度为5,容量也为5的切片
Use subscripts を渡してスライス内の要素にアクセスして変更することもできます。また、append 関数を使用してスライスに要素を動的に追加することもできます。例:
s := []int{1, 2, 3} fmt.Println(s[0]) // 输出1 s[1] = 4 fmt.Println(s) // 输出[1 4 3] s = append(s, 5) fmt.Println(s) // 输出[1 4 3 5]
- JSON の基本
JSON (JavaScript Object Notation) は、キーと値のペアを使用してデータ構造を記述する軽量のデータ交換形式で、通常は使用されます。クライアントとサーバー間のデータ転送用。 JSON 形式のデータは、Golang を含む任意のプログラミング言語を使用して処理できます。
JSON オブジェクトは 1 対の中括弧で囲まれ、複数のキーと値のペアが含まれています。例:
{ "name": "Tom", "age": 20, "score": [80, 90, 95] }
上記の JSON オブジェクトでは、キーと値のペアのキーが二重引用符で囲まれており、値には文字列、数値、ブール値、配列、またはその他の JSON オブジェクトを指定できます。
Golang では、json パッケージを使用して JSON データをシリアル化および逆シリアル化できます。 Golang スライスを JSON 形式に変換する方法を見てみましょう。
- スライスを JSON に変換
json パッケージを使用してスライスを JSON 形式に変換するのは非常に簡単で、次の手順に従うだけです。 JSON オブジェクトのキーに対応するフィールドである構造タイプを定義します。
- スライス オブジェクトを作成し、シリアル化する必要があるデータを入力します。json.Marshal を呼び出します。 () シリアル化用の関数、そしてその結果を []byte 型の変数に代入する; []byte 型の結果を string 型に変換し、端末に出力するか、ファイルに保存します。
- 以下は実際のコード例です:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { persons := []Person{ {Name: "Tom", Age: 20}, {Name: "Jerry", Age: 22}, {Name: "Alice", Age: 24}, {Name: "Bob", Age: 26}, } data, err := json.Marshal(persons) if err != nil { fmt.Println("JSON转换失败:", err) return } fmt.Println(string(data)) }
スライスするための JSON
- #同様に、json パッケージを使用して、JSON 形式のデータを Golang スライスに逆シリアル化することもできます。手順は次のとおりです:
構造タイプ、JSON オブジェクトのキーに対応するフィールドを定義します;
- JSON データを読み取ります (ファイルまたはファイルから読み取ることができます)。ネットワーク リクエストから取得); json.Unmarshal() 関数を呼び出して逆シリアル化し、結果をスライス変数に割り当てます。
- 以下は実際のコード例です:
- この記事では、Golang を使用してスライスを JSON 形式にシリアル化する方法を紹介し、実用的なコード例を示しました。 JSON データを Golang スライスに逆シリアル化する方法についても説明し、実用的なコード例も提供しました。このコンテンツが、読者が Golang の JSON 変換テクノロジーをよりよく理解し、使用するのに役立つことを願っています。
package main import ( "encoding/json" "fmt" "io/ioutil" ) type Person struct { Name string Age int } func main() { data, err := ioutil.ReadFile("persons.json") if err != nil { fmt.Println("读取文件失败:", err) return } persons := []Person{} err = json.Unmarshal(data, &persons) if err != nil { fmt.Println("JSON解析失败:", err) return } for _, p := range persons { fmt.Println(p.Name, p.Age) } }
概要
以上が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)

ホットトピック











この記事では、Goのパッケージインポートメカニズム:名前付きインポート(例:インポート "fmt")および空白のインポート(例:_" fmt")について説明しています。 名前付きインポートはパッケージのコンテンツにアクセス可能になり、空白のインポートはtのみを実行します

この記事では、Webアプリケーションでのページ間データ転送のためのBeegoのnewflash()関数について説明します。 newflash()を使用して、コントローラー間で一時的なメッセージ(成功、エラー、警告)を表示し、セッションメカニズムを活用することに焦点を当てています。 リミア

この記事では、MySQLクエリの結果をGO structスライスに効率的に変換することを詳しく説明しています。 データベース/SQLのスキャン方法を使用して、手動で解析することを避けて強調しています。 DBタグとロブを使用した構造フィールドマッピングのベストプラクティス

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

この記事では、goで効率的なファイルの書き込みを詳しく説明し、os.writefile(小さなファイルに適している)とos.openfileおよびbuffered write(大規模ファイルに最適)と比較します。 延期エラー処理、Deferを使用し、特定のエラーをチェックすることを強調します。

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

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています
