Saya ingin menulis JSON ke Stream
dengan membuat dokumen secara eksplisit. Misalnya:
var stream = ...;
var writer = new JsonWriter(stream);
writer.BeginArray();
{
writer.BeginObject();
{
writer.String("foo");
writer.Number(1);
writer.String("bar");
writer.Number(2.3);
}
writer.EndObject();
}
writer.EndArray();
Ini akan menghasilkan:
[
{
"foo": 1,
"bar": 2.3
}
]
Keuntungan dari pendekatan ini adalah tidak ada yang perlu di-buffer di memori. Dalam situasi saya, saya menulis cukup banyak JSON ke aliran. Solusi seperti yang ini melibatkan pembuatan semua objek Anda di memori, lalu membuat serialisasinya menjadi string besar di memori, lalu akhirnya menulis string ini ke aliran dan pengumpulan sampah, mungkin dari LOH. Saya ingin menjaga penggunaan memori saya tetap rendah, menulis elemen sambil membaca data dari aliran file/DB/dll lain.
Pendekatan semacam ini tersedia di C++ melalui library rapidjson.
Saya telah mencari-cari sedikit untuk ini dan belum menemukan solusi.