📌  相关文章
📜  asp.net core 3.1 将 system.collections.generic.list`1[system.string] 转换为 javascript (1)

📅  最后修改于: 2023-12-03 14:39:22.202000             🧑  作者: Mango

ASP.NET Core 3.1 - 将 List<string> 转换为 JavaScript

在 ASP.NET Core 3.1 中,如果需要将一个 List<string> 对象转换为 JavaScript 的数据格式,可以使用以下方法。

方法一:使用 System.Text.Json

ASP.NET Core 3.1 引入了 System.Text.Json 命名空间,该命名空间提供了将对象序列化为 JSON 格式的功能。可以使用 JsonSerializer.Serialize() 方法将 List<string> 对象转换为 JSON 字符串,然后传递给 JavaScript。

using System.Text.Json;

// 创建 List<string> 对象
List<string> stringList = new List<string> { "Item 1", "Item 2", "Item 3" };

// 将 List<string> 转换为 JSON 字符串
string jsonString = JsonSerializer.Serialize(stringList);

然后,在将 JSON 字符串传递给 JavaScript 的地方,可以使用以下代码:

// 将 JSON 字符串解析为 JavaScript 对象
var jsonObject = JSON.parse('@jsonString');

// 在控制台打印 JavaScript 对象
console.log(jsonObject);

注意:要在 Razor 视图中嵌入 C# 变量,需要使用 @ 符号。

方法二:使用 Newtonsoft.Json

如果你使用的是 ASP.NET Core 3.1 以下的版本,或者更喜欢使用 Newtonsoft.Json 库,可以使用 JsonConvert.SerializeObject() 方法将 List<string> 对象转换为 JSON 字符串,然后在 JavaScript 中进行解析。

安装 Newtonsoft.Json 包:

Install-Package Newtonsoft.Json

使用以下代码将 List<string> 对象转换为 JSON 字符串:

using Newtonsoft.Json;

// 创建 List<string> 对象
List<string> stringList = new List<string> { "Item 1", "Item 2", "Item 3" };

// 将 List<string> 转换为 JSON 字符串
string jsonString = JsonConvert.SerializeObject(stringList);

然后,在将 JSON 字符串传递给 JavaScript 的地方,可以使用以下代码:

// 将 JSON 字符串解析为 JavaScript 对象
var jsonObject = JSON.parse('@Html.Raw(jsonString)');

// 在控制台打印 JavaScript 对象
console.log(jsonObject);

注意:为了避免 HTML 编码对 JSON 字符串的影响,在将 JSON 字符串嵌入到 Razor 视图中时,需要使用 Html.Raw() 方法。

以上是将 List<string> 转换为 JavaScript 的两种方法。可以根据个人喜好选择合适的方法。