如何在不转换为json的情况下将C#数组用于javascript数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不转换为json的情况下将C#数组用于javascript数组?相关的知识,希望对你有一定的参考价值。

我有一个C#数组,其中包含C#模型列表:

public class AlertInfo
{
    public long Id { get; set; }
    public string Message { get; set; }
}

我将C#的数组转换为json并在javascript中使用,如下所示:

JavaScriptSerializer _serializer = new JavaScriptSerializer();
string result = _serializer.Serialize(myList);

在javascript中:

jQuery.parseJSON('<%= result %>')

Message在jQuery.parseJSON方法中包含双引号时抛出异常(例如Message是

你好,世界”

)

有没有办法处理这个错误或以另一种方式将C#数组传递给javascript数组?

答案

您可以使用htmlEncode函数。

示例代码:

string text = "you & me > them"; // 1

 // Replace > with >
 string htmlEncoded =Server.HtmlEncode(text); // 2

 // Now has the > again.
 string original =Server.HtmlDecode(htmlEncoded); // 3

输出:

Step 1: Before encoding has occurred.
String: you & me > them

Step 2: The string is encoded for HTML.
String: you &amp; me &gt; them

Step 3: String is converted back from HTML.
String: you & me > them

或者您可以在JavaScript端使用此方法。

另一答案

代替

jQuery.parseJSON('<%= result %>')

试试吧

<%= result %>

例如它可能是像var myVariable = <%= result %>这样的声明的一部分

由于序列化器已经生成了JSON,而JSON是JavaScript Object Notation,因此当它是JavaScript语句的一部分时,它可以直接解释为JavaScript变量。这意味着您应该能够直接将其注入JavaScript代码中。它已经是JSON了,所以不需要解析它(好像它是一个字符串)。

以上是关于如何在不转换为json的情况下将C#数组用于javascript数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不将 LocalDateTime 字段转换为扩展的 json 对象的情况下将 java 对象转换为简单的 json 字符串?

如何在不清空 HTMLCollection 的情况下将其转换为数组?

Postgresql:如何在不使用中间 hstore 的情况下将键值表转换为 json

Jackson 如何在不强制转换的情况下将 JsonNode 转换为 ArrayNode?

如何在不启用 keras 中的 run_eagerly 标志的情况下将张量转换为 numpy 数组

如何在没有可选值的情况下将字典数组快速转换为json字符串[重复]