【发布时间】:2017-09-30 12:24:10
【问题描述】:
我正在使用 c# 将一些数据序列化为 JSON 并使用以下代码将其发送到 javascript:
string serializedDS = JsonConvert.SerializeObject(ftpd);
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", string.Format("Func('{0}');", serializedDS), true);
JsonConvert.SerializeObject(ftpd) 的输出是{"FTPUserName":"XKK\\xpuser1","FTPPassword":"xpr@fr@12","FTPServerAddress":"255.255.255.0","FTPPath":"In/Files"}
我的javascript函数:
function Func(serializedDS) {
var result = JSON.parse(serializedDS);
if (result != null)
{
var a = result["FTPUserName"];
var b = result["FTPPassword"];
var c = result["FTPServerAddress"];
var d = result["FTPPath"];
}
}
作为函数参数接收的数据是serializedDS = "{"FTPUserName":"XKK\xpuser1","FTPPassword":"xpr@fr@12","FTPServerAddress":"255.255.255.0","FTPPath":"In/Files"}"
但是在var result = JSON.parse(serializedDS); 线上我收到了这个错误Uncaught SyntaxError: Unexpected token x in JSON at position 20
at JSON.parse (<anonymous>)
任何帮助将不胜感激!
【问题讨论】:
-
而不是 String.Format... 您可以尝试使用可以在 javascript 中跟踪的变量,例如 ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", string. Format("var x = {0}; console.log(x);", serializedDS), true);
-
由于您向我们展示的字符串不会引起问题,并且由于该字符串中没有“JSON 中第 20 位的标记 x”,因此我得出结论,您认为已解析的字符串很可能不是实际解析的字符串。
-
@Mörre :我已经更新了测试数据。很抱歉造成混乱
-
似乎是 \\ 给你带来了问题
-
@SrikantSahu :我认为这不是问题,因为 c# 就是这样显示的。但是在客户端收到的数据库中的确切值。我认为 `` 是造成问题的原因。但不确定如何解决
标签: javascript asp.net json