Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法分析返回的Jquery/.NET核心JSON_Javascript_Jquery_Json_Asp.net Core - Fatal编程技术网

Javascript 无法分析返回的Jquery/.NET核心JSON

Javascript 无法分析返回的Jquery/.NET核心JSON,javascript,jquery,json,asp.net-core,Javascript,Jquery,Json,Asp.net Core,这是我发送给控制器的信息: 除此之外,还有一个关键点除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了

这是我发送给控制器的信息:

除此之外,还有一个关键点除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了以外以外以外以外以外以外以外以外以外以外以外的以外以外以外以外以外以外以外的以外以外以外以外以外的以外以外以外的其他以外的其他以外的其他以外的其他以外以外的其他以外的以外的其他以外的其他以外的其他以外以外的其他以外的其他以外的以外的其他以外的其他以外的其他以外的其他以外以外的其他以外的以外以外的其他以外的以外以外的以外以外的以外以外的其他以外的其他以外的其他以外的\“,\“最大值\”:\“\”}]

这是我在再次解析和序列化它之后从服务器收到的信息

我很困惑,因为我没有改变任何事情。当我尝试在Jquery端对其进行解析时,会出现以下错误:

未捕获的SyntaxError:位置2的JSON中出现意外标记(&N)

这是jquery代码

if ("@Model.FormPropertiesList".length !== 0) {
    console.log($.parseJSON("@Model.FormPropertiesList"));
}
我错过什么了吗

编辑:这是我的服务器端代码

var list = JsonConvert.DeserializeObject<List<NewFormPropertyViewModel>>(Input.FormPropertiesList);
Input.FormPropertiesList = JsonConvert.SerializeObject(list);
return View("Create", Input);
首先替换您的“"”

var serverrep=“[{”PropertyName:“fewfewwf”,“Key:“ewgwewe”,“PrimaryValue:”“SecondaryValue:”“TertiaryValue:”“MinimumValue:”“maxiumvalue:”}]
var serverRepWithoutQuots=serverrep.replace(/“/g,”);
console.log(serverRepWithoutQuots)
console.log(JSON.parse(serverRepWithoutQuots))
首先替换您的“"”

var serverrep=“[{”PropertyName:“fewfewwf”,“Key:“ewgwewe”,“PrimaryValue:”“SecondaryValue:”“TertiaryValue:”“MinimumValue:”“maxiumvalue:”}]
var serverRepWithoutQuots=serverrep.replace(/“/g,”);
console.log(serverRepWithoutQuots)

console.log(JSON.parse(serverRepWithoutQuots))
在Django中将JSON传递到我的模板然后再传递到我的js文件时,我遇到了类似的问题。当您在Django中执行此操作时,您将从上下文中的视图中传递一些内容,然后当您在Django模板中时,您将执行以下操作

var someName = {{ fromView }};
我用双引号把它包起来

var someName = "{{ fromView }}";
因此,它是对解析的JSON中的双引号进行转义。我花了2个小时试图弄清楚到底发生了什么,实际上我不得不将双引号改为单引号,因为它是以双引号的字符串形式读取的,而另一个字符串(json字符串)中有双引号

var someName = '{{ fromView }}';

重点是我会检查JSON,以确保您没有以错误的方式传递它,并且它的编码不正确/在某处添加额外的引号

我在将JSON传递到我的模板然后再传递到Django中的js文件时遇到了类似的问题。当您在Django中执行此操作时,您将从上下文中的视图中传递一些内容,然后当您在Django模板中时,您将执行以下操作

var someName = {{ fromView }};
我用双引号把它包起来

var someName = "{{ fromView }}";
因此,它是对解析的JSON中的双引号进行转义。我花了2个小时试图弄清楚到底发生了什么,实际上我不得不将双引号改为单引号,因为它是以双引号的字符串形式读取的,而另一个字符串(json字符串)中有双引号

var someName = '{{ fromView }}';

重点是,我会检查JSON,以确保您没有以错误的方式传递它,并且它的编码不正确/在某处添加额外的引号。字符串正在进行HTML编码。您可以使用来告诉razor按原样放置
字符串。对字符串进行编码的原因之一是出于安全目的。假设您正试图显示刚从数据库获取的某些数据,并且该数据包含一些“恶意”JavaScript,虽然此代码对数据库无害,但一旦呈现视图,它将影响客户端。您可以尝试:

if ("@Model.FormPropertiesList".length !== 0) {
    console.log(JSON.parse("@HTML.Raw(Model.FormPropertiesList)"));
}

字符串正在进行HTML编码。您可以使用来告诉razor按原样放置
字符串。对字符串进行编码的原因之一是出于安全目的。假设您正试图显示刚从数据库获取的某些数据,并且该数据包含一些“恶意”JavaScript,虽然此代码对数据库无害,但一旦呈现视图,它将影响客户端。您可以尝试:

if ("@Model.FormPropertiesList".length !== 0) {
    console.log(JSON.parse("@HTML.Raw(Model.FormPropertiesList)"));
}

您试图解析客户端的字符串似乎是出于某种原因而编码的jQuery的
parseJSON
函数已被弃用,请改用本机的
JSON.parse()
方法。JSON..parse()也存在同样的问题。由于编码,我得到了相同的错误…我们需要查看创建编码JSON的JS代码以及如何将其发送到控制器,因为这是问题的根源您尝试解析客户端的字符串似乎出于某种原因被编码jQuery的
parseJSON
函数已被弃用,而是使用本机的
JSON.parse()
方法。JSON..parse()也存在同样的问题。由于编码的原因,我得到了相同的错误……我们需要查看正在创建编码JSON的JS代码,以及如何将其发送到控制器,因为这是问题的根源。这非常奇怪。我做错了什么,需要更换它?这很奇怪。我做错了什么,我需要更换它?你好!感谢您提供此解决方案。我正在使用.NETCore,我也尝试用单引号替换它。但是我也遇到了同样的问题。看起来双引号来自服务器。我想另一种选择可能是,您从服务器获得的内容已经是JSON序列化的,然后您再次序列化,以便对其进行编码。我相信这可能发生在一些事情上,比如webapi。我已经有一段时间没有写过任何.net了,所以我不是很确定,但我认为值得一试。试着不要手动序列化它,看看服务器是否只是返回序列化后的文件?您好!感谢您提供此解决方案。我正在使用.NETCore,我也尝试用单引号替换它。但是我也遇到了同样的问题。看起来双引号来自服务器。我想另一种选择可能是,您从服务器获得的内容已经是JSON序列化的,然后您再次序列化,以便对其进行编码。我相信这可能发生在一些事情上,比如webapi。我已经有一段时间没有写过任何.net了,所以我不是很确定,但我认为值得一试。试着不要手动序列化它,看看是否可能是se