Dictionary型のデータをjson文字列に変換するサンプルです。
日本語を扱う場合は注意が必要です。
サンプル
例1)Dictionaryをjsonに変換する
using System.Text.Json;
//Dictionaryデータを生成する
Dictionary dc = new Dictionary()
{
{"01", "Apple"},
{"02", "Orange"},
{"03", "Peach"}
};
//jsonに変換する
string json = JsonSerializer.Serialize(dc);
json → {
"01":"Apple",
"02":"Orange",
"03":"Peach"
}
サンプル(日本語の場合)
日本語を扱う場合は、エンコードを指定する必要があります。
エンコードしないと、例えば"りんご"は"\u308A\u3093\u3054"のような文字になってしまいます。
例2)Dictionaryをjsonに変換する(日本語を含む)
using System.Text.Json;
using System.Text.Encodings.Web;
using System.Text.Unicode;
//Encode設定
var op = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
WriteIndented = true
};
//Dictionaryデータを生成する
var dc = new Dictionary<string, string>()
{
{"01", "りんご"},
{"02", "みかん"},
{"03", "もも"}
};
//jsonに変換する
string json = JsonSerializer.Serialize(dc, op);
json → {
"01": "りんご",
"02": "みかん",
"03": "もも"
}
備考
- Dictionaryをjson文字列に変換したい場合は、System.Text.Json.JsonSerializer.Serializeを使用すると簡単です。
- 日本語(Unicode文字)を扱う場合はエンコードの指定が必要な点にご注意ください。
- Dictionaryのキーはint型の場合は不可です。