【问题标题】:While parsing JSon data getting Error "Uncaught SyntaxError: Unexpected token x in JSON at position"解析 JSON 数据时出现错误“Uncaught SyntaxError: Unexpected token x in JSON at position”
【发布时间】: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


【解决方案1】:

问题是由 2 个反斜杠引起的。我已将 Func 更改为直接处理 Json 对象。

ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", string.Format("var result = {0}; setData();", serializedDS), true);

在 javascript 中创建以下函数。

function setData() {

if (result != null)
{
    var a = result["FTPUserName"];
    var b = result["FTPPassword"];
    var c = result["FTPServerAddress"];
    var d = result["FTPPath"];

}}

【讨论】:

  • 很高兴它有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 2021-03-02
  • 1970-01-01
相关资源
最近更新 更多