gpt4 book ai didi

c# - 如何在 JSONP 响应中管理 '?

转载 作者:行者123 更新时间:2023-11-30 14:15:45 26 4
gpt4 key购买 nike

我需要在我的 JSONP 请求中管理像 ' 这样的字符,通过 jquery 使用 Ajax。所以(来自 C#)这就是我所做的:

myText = "Hello I'm a string";
myText.Replace("'", "\'");
Response.Write(Request["callback"] + "({ htmlModulo: '" + myText + "'});");

但在客户端它坏了:

parsererror - SyntaxError: missing } after property list

那么,如果替换不起作用,我该如何管理 '

最佳答案

.NET 已经为您解决了序列化 JSON。使用 System.Web.Script.Serialization.JavaScriptSerializer :

var serializer = new JavaScriptSerializer();

要构建 JSONP,您只需要连接前缀(硬编码或传入“回调”查询参数)和后缀(通常只是 ),但有时您可能需要传递额外的参数,具体取决于什么调用者期望像 ,42, null) ) 和 JSON 文本。

下面的示例显示了根据“回调”参数构建 JSONP,根据您的需要替换 jsonpPrefix 的值。

var myText = "Hello I'm a string";
var jsonpPrefix = Request["callback"] + "(";
var jsonpSuffix = ")";
var jsonp =
jsonpPrefix +
serializer.Serialize(new {htmlModulo = myText}) +
jsonpSuffix);
Response.Write(jsonp);

您应该始终使用序列化器,因为自己动手意味着您更有可能搞砸并违反 JSON 规范。例如,您没有引用 key ,即 required by JSON ,所以 jQuery 和其他 JSON 解析器会很困惑。它还将处理所有需要转义的字符。

有关构建 JSON 的更多信息,请参阅 How to create JSON string in C# .

关于c# - 如何在 JSONP 响应中管理 '?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9431731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com