繁体   English   中英

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

[英]How to use C# array to javascript array without converting to json?

我有一个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,因此不需要解析它(就好像它是一个字符串一样)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM