首页 > 后端开发 > C++ > JavascriptSerializer 可以在 .NET 中将列表序列化为 JSON 吗?

JavascriptSerializer 可以在 .NET 中将列表序列化为 JSON 吗?

Mary-Kate Olsen
发布: 2025-01-11 06:53:42
原创
263 人浏览过

Can JavascriptSerializer Serialize Lists to JSON in .NET?

.NET 中的 JavascriptSerializer 能否将列表序列化为 JSON?

假设您的对象模型中包含 MyObjectInJson,其属性 ObjectInJson 存储嵌套列表的序列化版本。目前,您正在手动序列化列表,如下所示:

<code class="language-csharp">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();</code>
登录后复制

JavascriptSerializer 是否可以实现相同的结果?

JavascriptSerializer 的替代方案

对于 .NET 6.0 及更高版本,建议使用内置的 System.Text.Json 解析器。它可以高效地序列化列表,无需反射,如下所示:

<code class="language-csharp">using System.Text.Json;
using System.Text.Json.Serialization;

var aList = new List<myobjectinjson>
{
    new(1, "1"),
    new(2, "2")
};

var json = JsonSerializer.Serialize(aList, Context.Default.ListMyObjectInJson);
Console.WriteLine(json);

return;

public record MyObjectInJson
(
    long ObjectId,
    string ObjectInJson
);

[JsonSerializable(typeof(List<myobjectinjson>))]
internal partial class Context : JsonSerializerContext
{
}</code>
登录后复制

对于之前的 .NET 版本(例如,Core 2.2 及更早版本),Newtonsoft JSON.Net 是一个可行的替代方案:

<code class="language-csharp">using Newtonsoft.Json;

var json = JsonConvert.SerializeObject(aList);</code>
登录后复制

如有必要,请考虑安装该软件包:

<code>PM> Install-Package Newtonsoft.Json</code>
登录后复制

为了便于参考,提供了使用 JavaScriptSerializer 的原始方法:

<code class="language-csharp">// 需要引用 System.Web.Extensions

using System.Web.Script.Serialization;

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(aList);</code>
登录后复制

以上是JavascriptSerializer 可以在 .NET 中将列表序列化为 JSON 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板