我需要在C#中使用JSON格式将以下数据写入文本文件。方括号对于它是有效的JSON格式很重要。
[
{
"Id": 1,
"SSN": 123,
"Message": "whatever"
},
{
"Id": 2,
"SSN": 125,
"Message": "whatever"
}
]
以下是我的模型类:
public class data
{
public int Id { get; set; }
public int SSN { get; set; }
public string Message { get; set;}
}
4条答案
按热度按时间0lvr5msh1#
2020年更新:我写这个答案已经7年了。它似乎仍然受到很多关注。在2013年,Newtonsoft Json.Net是这个问题的答案。现在,它仍然是这个问题的一个好答案,但它不再是唯一可行的选择。为了给这个答案添加一些最新的警告:
System.Text.Json
序列化器(见下文)JavaScriptSerializer
的时代已经过去了,这个类甚至不在.NET Core中。这使得Newtonsoft运行的许多比较无效。System.Text.Json
串行器的一个优势是它支持async
/await
Json.net的日子屈指可数了吗?它仍然被大量使用,它仍然被MS库使用。所以可能不会。但这确实感觉像是这个库结束的开始,它可能只是运行它的课程。
.NET Core 3.0+和.NET 5+
自从写了这篇文章以来,一个新的孩子是
System.Text.Json
,它已经被添加到.Net Core 3.0中。微软声称这是如何,现在,比Newtonsoft更好。包括它是faster than Newtonsoft。我建议你自己测试一下。示例:
或
Documentation
Newtonsoft Json.Net(.Net framework和.Net Core)
另一个选项是Json.Net,参见下面的示例:
或者上面代码的稍微更高效的版本(不使用字符串作为缓冲区):
文件:Serialize JSON to a file
gkl3eglg2#
Liam的答案中的示例将文件保存为单行中的字符串。我更喜欢添加格式。将来可能有人想要手动更改文件中的某些值。如果您添加格式,则更容易做到这一点。
下面添加了基本的JSON缩进:
k97glaaz3#
使用JavaScriptSerializer Class可以实现以下内置功能:
hjzp0vay4#