Javascript JSON响应AJAX中的错误格式
我有下面的代码,它是调用其他PC服务器中的web服务。 数据参数正常Javascript JSON响应AJAX中的错误格式,javascript,json,ajax,Javascript,Json,Ajax,我有下面的代码,它是调用其他PC服务器中的web服务。 数据参数正常 "{ ControlId: 'ZAsociated_26037', TaskId: 1495613, UserId: 166396, TBodyId: ''}" 错误是,当我有WS的data.d结果时,JSON在字符串中添加adicionals“\”字符: 回应的开始: [{“Nombre del Documento\”:“Regumentzacion/Factura.22076-Proveedor-Sin:38653 G
"{ ControlId: 'ZAsociated_26037', TaskId: 1495613, UserId: 166396, TBodyId: ''}"
错误是,当我有WS的data.d结果时,JSON在字符串中添加adicionals“\”字符:
回应的开始:
[{“Nombre del Documento\”:“Regumentzacion/Factura.22076-Proveedor-Sin:38653 Global:No\”,“Estado\”:“Pago finalizado\”,
我试图将“\”替换为空字符串,但它不起作用
当成功调用loadAsociatedTable函数时,此AJAX将执行以下操作:
for (var i = 0; i < $.parseJSON(data).length;i++){
for(var i=0;i<$.parseJSON(data).length;i++){
并且在$.parseJSON(data).length中有一个错误,因为不将此字符串转换为对象
我签入了Chrome,JSON没有问题,没有这个栏“\”,并认识到像对象一样,问题只存在于IE v.11中。服务器的JSON响应无效。一些服务器程序员误解了JSON双引号转义,并试图在任何地方应用它。让服务器返回有效的JSON。大多数服务器环境都有标准的JSON库,这些库将构造不无效的JSONd、 正确的JSON当然只是
[{"Nombre del Documento":"Indemnizacion/Factura. 22076 - Proveedor - Sin: 38653 Global: No","Estado":"Pago finalizado", ...
您可以尝试自己修复JSON,方法是将\“
替换为”
,这将非常简单
replace(/\\"/g, '"')
但问题是,您还将破坏字符串值中表示双引号的序列。这是一个相当棘手的问题。因此,最好的解决方案是让服务器发送正确的JSON开始。您能发布完整的JSON来帮助我分析吗 同时试试这个 对data.d使用Eval,比如Eval(“{”+data.d+“}”) 或JSON.Parse(data.d)
尝试在此处验证json最后我可以解决问题,我使用了json.parse()而不是$.parseJSON(),可能是JQuery版本。AJAX响应包含此附加值“\”,但当我解析此对象时,JS会毫无问题地转换它。
感谢您的帮助!您从
$.parseJSON(data)
收到的错误消息是什么?并且,data
是否是loadAsociatedTable()
的第二个参数?您是否同时尝试了.replace()
和$.parseJSON()
?是否尝试了$.parseJSON(data.d)
在success
中,$.parseJSON(数据)的错误。长度为“对象不支持属性或方法'parseJSON'”,JSON不正确,包含其他内容\,当我尝试获取对象的长度时,出现了此错误。是的,loadAsociatedTable的第二个参数是此AJAX的响应。此错误与$
对象本身没有解析JSON()有关
方法。您是否使用jQuery或类似的库来处理$
?您使用的是什么版本?在jQuery中,添加了1.4.1,在较低版本中不可用。您最后一个问题的回答是:是的,但我在JSON的一些参数中有很多“\”,最新的行是:\“Estado requestud x liquidador\”:null\“荣誉表格”:null,“加斯托斯表格”:null,“Ruta Documento\”:“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\13\\\\\\\\\\\\4859528.pdf\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\赔偿/事实:22034576-证明人-Sin:3865233全球:否,“,”Estado“:”Pago finalizado“,”ID Comprobante“:”2250476,“,”Nro de Siniestro“:”38653,“,”扇区“:”Siniestros Ramas Varias“,”Rama“:”INTEGRAL COMERCIO“,”Administrración“:”null,“,”Ingrepor“:”prettimaur“,”Tipo“,”受益人“:”Proviero“,”受益人:”ESTUDIO SANTAMARINA SA\“,”Proveedor\“:null,\”Nro Orden de Pago\“:230934562,\”Fecha propuesta por Siniestros\”:null,\”Fecha Comprobante\“:\“\”/日期(1378782000000)\/”]“我在Chrome中进行了检查,JSON是正常的,没有此条“\”,并且认识到,就像对象一样,问题只存在于IE v.11中。
replace(/\\"/g, '"')