Go 言語 (Golang) は C 言語に似たプログラミング言語で、主に効率的で信頼性の高いプログラミング アプリケーションの開発に使用されます。他のプログラミング言語と比較した場合、Golang の利点には、高いパフォーマンス、高い開発効率、高い同時実行性、および強力なエラー処理機能が含まれます。実際の開発ではJSON形式のデータを操作する必要が生じることが多いですが、この記事ではGolangを使ってJSON形式のデータを改変する方法を紹介します。
1. JSON の概要
JSON は JavaScript Object Notation の略で、軽量のデータ交換形式です。これは、JavaScript 言語標準 (ECMA-262 バージョン 3、1999 年 12 月) のサブセットに基づいています。 JSON 形式の仕様と読みやすさにより、Web アプリケーションで広く使用されています。
2. Golang での JSON の使用
Golang では、encoding/json パッケージを使用して JSON 形式を処理できます。このパッケージは、JSON の解析と生成操作を実装できる Marshal、Unmarshal、NewEncoder、NewDecoder などの関数を提供します。
JSON の解析では、通常、 json.Unmarshal() 関数を使用します。次の JSON 文字列があるとします。
{ "name": "Tom", "age": 18, "gender": "male", "score": [88, 90, 95] }
JSON データを表す次の構造を定義できます。
type Student struct { Name string `json:"name"` Age int `json:"age"` Gender string `json:"gender"` Score []int `json:"score"` }
Unmarshal() 関数を使用して、JSON 文字列を Student 構造に解析します。
var str = `{ "name": "Tom", "age": 18, "gender": "male", "score": [88, 90, 95] }` var std Student err := json.Unmarshal([]byte(str), &std) if err != nil { panic(err.Error()) } fmt.Println(std.Name, std.Age, std.Gender, std.Score)
実行後の出力:
Tom 18 male [88 90 95]
通常、JSON の生成には json.Marshal() 関数が使用されます。 Student:
type Student struct { Name string `json:"name"` Age int `json:"age"` Gender string `json:"gender"` Score []int `json:"score"` }
という構造を定義し、その構造を JSON 文字列に変換します:
std := Student{ Name: "Tom", Age: 18, Gender: "male", Score: []int{88, 90, 95}, } result, err := json.Marshal(std) if err != nil { panic(err.Error()) } fmt.Println(string(result))
出力:
{"name":"Tom","age":18,"gender":"male","score":[88,90,95]}
3. JSON
In を変更します。 Golang では、いくつかの簡単な方法を使用して JSON 形式のデータを変更できます。次の JSON データがあるとします。
{ "name": "Tom", "age": 18, "gender": "male", "score": [88, 90, 95] }
まず、Unmarshal() 関数を使用して、JSON 文字列を Map 形式に解析します。
var str = `{ "name": "Tom", "age": 18, "gender": "male", "score": [88, 90, 95] }` var data map[string]interface{} err := json.Unmarshal([]byte(str), &data) if err != nil { panic(err.Error()) }
次に、データ内の値を変更します。
data["score"] = []int{99, 98, 97}
最後に、Marshal() 関数を使用してマップを JSON 文字列に変換します。
result, err := json.Marshal(data) if err != nil { panic(err.Error()) } fmt.Println(string(result))
出力:
{"age":18,"gender":"male","name":"Tom","score":[99,98,97]}
構造体を使用して JSON を変更することもできます。
type Student struct { Name string `json:"name"` Age int `json:"age"` Gender string `json:"gender"` Score []int `json:"score"` } var str = `{ "name": "Tom", "age": 18, "gender": "male", "score": [88, 90, 95] }` var std Student err := json.Unmarshal([]byte(str), &std) if err != nil { panic(err.Error()) } std.Score = []int{99, 98, 97} result, err := json.Marshal(std) if err != nil { panic(err.Error()) } fmt.Println(string(result))
出力:
{"name":"Tom","age":18,"gender":"male","score":[99,98,97]}
4. まとめ
この記事では主に、JSON の解析、JSON の生成、JSON の変更など、Golang で JSON 形式を処理する方法を紹介します。 JSON データ形式は軽量で読みやすいデータ交換形式であり、Golang はエンコーディング/json パッケージを通じて強力なサポートを提供します。実際の開発では、プログラムの効率と保守性を向上させるために、必要に応じて異なる操作方法を選択する必要があります。
以上がgolang で json を変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。