ホームページ >バックエンド開発 >Golang >golangデータをjsonに変換する方法

golangデータをjsonに変換する方法

PHPz
PHPzオリジナル
2023-04-24 09:10:282596ブラウズ

インターネットの急速な発展に伴い、データの処理と送信の重要性がますます高まっています。 JSON (JavaScript Object Notation) は、読み書きが簡単なテキスト形式でデータを送信するためにインターネットで広く使用されている軽量のデータ交換形式です。 golang は効率的なプログラミング言語として、データを JSON 形式に簡単に変換する方法も提供します。

golangではコードを書くことでデータをJSON形式に変換できます。具体的には、次の 2 つの方法があります。

方法 1: 標準ライブラリ encoding/json を使用する

標準ライブラリ encoding/json は、JSON 形式をエンコードおよびデコードするためのメソッドを提供します。まず、カスタム構造を定義する必要があります。そのフィールドは json タグでマークする必要があります。

type Person struct {
Name string json:"name"
Age int json:"age"
}

ここの json タグは、JSON でフィールドの名前を指定します。次に、JSON バイト配列を生成することで、Person タイプのデータを JSON 形式に変換できます。

import (
"encoding/json"
"fmt"
)

func main() {
person := person{名前: "トム"、年齢: 18}
データ、err := json.Marshal(person)
if err != nil {

fmt.Println("JSON Marshalling failed:", err)
return

}
fmt.Printf("JSON data:\n%s\n", data)
}

出力結果:

JSON data:
{"name":"Tom","age":18}

Unmarshal 関数を使用して JSON を構造体にデコードすることもできます:

func main() {
jsonStr := {"name":"Tom","age":18}

var person Person
if err := json.Unmarshal([]byte (jsonStr) , &person); err != nil {

fmt.Println("JSON Unmarshalling failed:", err)
return

}

fmt.Printf("デコードされた人物データ: % v\n", person)
}

出力結果:

デコードされた人物データ: {Name:Tom Age:18}

方法 2: サードパーティ ライブラリを使用する

サードパーティ ライブラリを使用して変換データの JSON へのフォーマットも非常に簡単です。より人気のあるライブラリには、gjson や jsoniter などのライブラリがあります。ここでは jsoniter を例として取り上げます。

最初に、方法 1 と同じようにカスタム構造を定義します。

次に、jsoniter ライブラリの Marshal 関数を使用して、標準ライブラリと同様に、パーソン タイプのデータを JSON 形式に変換できます。

import (
"github.com/ json- iterator/go"
"fmt"
)

func main() {
// struct
を定義 person := person{名前: "トム"、年齢: 18}

// データを json 形式に変換します
data, err := jsoniter.Marshal(person)
if err != nil {

fmt.Println("JSON Marshalling failed:", err)
return

}

fmt.Printf("JSON data:\n%s\n", data)
}

出力結果:

JSON data:
{"name": "Tom ","age":18}

同様に、jsoniter ライブラリの Unmarshal 関数を使用して、JSON 形式から変換されたデータをデコードすることもできます:

func main() {
jsonStr := {"name":"Tom","age":18}

var person Person
if err := jsoniter.Unmarshal([]byte( jsonStr), &person); err != nil {

fmt.Println("JSON Unmarshalling failed:", err)
return

}

fmt.Printf("デコードされた人物データ: % v\n", person)
}

出力結果:

デコードされた人物データ: {名前:トム 年齢:18}

概要

golang では、標準ライブラリのエンコーディング/json を使用して変換できます。データを JSON 形式に変換する場合、サードパーティのライブラリを使用して同じ変換を行うこともできます。ライブラリが異なればいくつかの点が異なるため、実際の状況に基づいて適切なライブラリを選択できます。どの方法を使用しても、JSON 形式の変換は非常に簡単です。

以上がgolangデータをjsonに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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