我有一个看起来像这样的对象模型:
public MyObjectInJson { public long ObjectID {get;set;} public string ObjectInJson {get;set;} }
该属性ObjectInJson是一个已序列化的版本,该对象包含嵌套列表。目前,我正在MyObjectInJson像这样手动序列化列表:
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并获得相同的结果。我该怎么做?
JavascriptSerializer
谢谢。
默认为使用内置的System.Text.Json解析器实现。
System.Text.Json
例如
using System.Text.Json; var json = JsonSerializer.Serialize(aList);
另外,还可以使用其他一些不太主流的选项,例如Utf8Json解析器和Jil:如果确实需要,它们可能会提供更高的性能,但是,您需要安装各自的软件包。
默认为使用Newtonsoft JSON.Net作为您的首选JSON解析器。
using Newtonsoft.Json; var json = JsonConvert.SerializeObject(aList);
您可能需要先安装软件包。
PM> Install-Package Newtonsoft.Json
有关更多详细信息,请参见并认可作为此信息来源的答案。
// you need to reference System.Web.Extensions using System.Web.Script.Serialization; var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(aList);