我有一个如下所示的对象模型:
public MyObjectInJson
{
public long ObjectID {get;set;}
public string ObjectInJson {get;set;}
}
ObjectInJson
属性是一个已经序列化的版本,一个包含嵌套列表的对象。目前,我正在手动序列化 MyObjectInJson
列表,如下所示:
StringBuilder TheListBuilder = new StringBuilder();
TheListBuilder.Append("[");
int TheCounter = 0;
foreach (MyObjectInJson TheObject in TheList)
{
TheCounter++;
TheListBuilder.Append(TheObject.ObjectInJson);
if (TheCounter != TheList.Count())
{
TheListBuilder.Append(",");
}
}
TheListBuilder.Append("]");
return TheListBuilder.ToString();
我想知道我是否可以用 JavascriptSerializer
替换这种危险的代码并获得相同的结果。我该怎么做?
如果使用 .Net Core 3.0 或更高版本;
默认使用内置的 System.Text.Json
解析器实现。
例如
using System.Text.Json;
var json = JsonSerializer.Serialize(aList);
另外,还可以使用其他不太主流的选项,例如 Utf8Json解析器和 Jil : 这些可能提供superior performance ,如果你真的需要它,你将需要安装它们各自的包。
如果使用 .Net Core 2.2 或更早版本卡住;
默认使用 Newtonsoft JSON.Net 作为您的首选 JSON 解析器。
例如
using Newtonsoft.Json;
var json = JsonConvert.SerializeObject(aList);
您可能需要先安装软件包。
PM> Install-Package Newtonsoft.Json
更多详情see and upvote the answer that is the source of this information .
仅供引用,这是多年前的原始答案;
// you need to reference System.Web.Extensions
using System.Web.Script.Serialization;
var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(aList);
我是一名优秀的程序员,十分优秀!