ฉันจะแนะนำJson.Netดูตัวอย่างด้านล่าง:
List<data> _data = new List<data>();
_data.Add(new data()
{
Id = 1,
SSN = 2,
Message = "A Message"
});
string json = JsonConvert.SerializeObject(_data.ToArray());
//write string to file
System.IO.File.WriteAllText(@"D:\path.txt", json);
หรือโค้ดด้านบนที่มีประสิทธิภาพมากกว่าเล็กน้อย (ไม่ได้ใช้สตริงเป็นบัฟเฟอร์):
//open file stream
using (StreamWriter file = File.CreateText(@"D:\path.txt"))
{
JsonSerializer serializer = new JsonSerializer();
//serialize object directly into file stream
serializer.Serialize(file, _data);
}
เอกสารประกอบ: ทำให้JSON เป็นไฟล์เป็นอนุกรม
ทำไม? นี่คือการเปรียบเทียบคุณสมบัติระหว่าง serialisers ทั่วไปและการทดสอบเกณฑ์มาตรฐาน †‡
ด้านล่างเป็นกราฟของประสิทธิภาพที่นำมาจากบทความที่เชื่อมโยง:
โพสต์แยกนี้ระบุว่า:
Json.NET มีประสิทธิภาพของหน่วยความจำเสมอสตรีมมิ่งการอ่านและการเขียนเอกสารขนาดใหญ่แทนที่จะโหลดลงในหน่วยความจำทั้งหมด แต่ฉันสามารถค้นหาสถานที่สำคัญสองแห่งที่การลดการจัดสรรวัตถุจะ ...... (ตอนนี้) Json.Net (6.0)จัดสรรหน่วยความจำให้น้อยกว่า JavaScriptSerializer 8 เท่า‡
อัปเดตตั้งแต่. Net Core 3.0
เด็กคนใหม่ในบล็อกนับตั้งแต่เขียนสิ่งนี้System.Text.Json
ซึ่งถูกเพิ่มลงใน. Net Core 3.0 ไมโครซอฟท์กล่าวอ้างหลาย ๆ อย่างว่าดีกว่า Newtonsoftอย่างไร รวมถึงว่ามันเร็วกว่า Newtonsoft ดังกล่าวข้างต้นผมขอแนะนำให้คุณทดสอบนี้ด้วยตัวเอง‡
†มาตรฐานดูเหมือนเป็น Json.Net 5 เวอร์ชันปัจจุบัน (ตามการเขียน) คือ 10 เวอร์ชันอนุกรมมาตรฐานสุทธิที่ใช้ไม่ได้กล่าวถึง
tests การทดสอบเหล่านี้เห็นได้ชัดจากนักพัฒนาที่ดูแลห้องสมุด ฉันยังไม่ได้ยืนยันการเรียกร้องของพวกเขา หากสงสัยให้ทดสอบด้วยตนเอง
JavaScriptSerializer
และDataContractJsonSerializer
คลาสอย่างไร