c#jsonファイルライティング:包括的なガイド
このガイドは、JSONデータをC#のファイルに書き込む効率的な方法を詳述しています。 課題は、必要なブラケットを含む有効なJSON構文のデータを正しくフォーマットすることにあります。
データモデル:
public class DataItem
{
public int Id { get; set; }
public int SSN { get; set; }
public string Message { get; set; }
}
サンプルデータ:
[
{
"Id": 1,
"SSN": 123,
"Message": "whatever"
},
{
"Id": 2,
"SSN": 125,
"Message": "whatever"
}
]
newtonsoft.jsonを使用したソリューション(推奨):
newtonsoft.jsonは、文字列バッファリングを回避して、非常に効率的なアプローチを提供します。
List dataItems = new List();
dataItems.Add(new DataItem { Id = 1, SSN = 2, Message = "A Message" });
// Method 1: Serialize to string, then write to file
string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(dataItems.ToArray());
System.IO.File.WriteAllText(@"D:\path.txt", jsonString);
// Method 2: Direct serialization to file stream (more efficient)
using (StreamWriter file = File.CreateText(@"D:\path2.txt"))
{
Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
serializer.Serialize(file, dataItems);
}
system.text.jsonを使用したソリューション(.net Core 3.0以降):
System.text.jsonは、非同期機能を備えた同様の機能を提供する組み込みライブラリです。
using System.Text.Json;
List dataItems = new List();
dataItems.Add(new DataItem { Id = 1, SSN = 2, Message = "A Message" });
// Synchronous method
string jsonString = JsonSerializer.Serialize(dataItems);
File.WriteAllText(@"D:\path.json", jsonString);
// Asynchronous method
await using FileStream createStream = File.Create(@"D:\pathAsync.json");
await JsonSerializer.SerializeAsync(createStream, dataItems);
プロジェクトのニーズと.NETバージョンに最適な方法を選択します。 最適なパフォーマンス、特に大規模なデータセットでは、直接ファイルストリームのシリアル化(Newtonsoft.jsonを使用した方法2またはSystem.text.jsonを使用した非同期メソッドを使用)を推奨します。 免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3