繁体   English   中英

JSON.parse(data) 导致错误

[英]JSON.parse(data) causes error

问题似乎很简单:AJAX post 请求的回调函数在参数“data”中接收到这个 json 字符串:

{"result":"Torte"}.

当我像这样手动解析它时

var antwort = JSON.parse('{"result":"Torte"}');

没关系。

var antwort = JSON.parse("'" + data + "'");

导致错误

Uncaught SyntaxError: Unexpected token ' in JSON at position 0
at JSON.parse (<anonymous>)

var antwort = JSON.parse(data); 

出现了类似的错误(在 Chrome 的开发人员工具中):

VM1285:2 Uncaught SyntaxError: Unexpected token < in JSON at position 21
at JSON.parse (<anonymous>)

所以似乎 'data' 包含额外的字符。 另一方面,使接收到的 json-string 可见

$("#idTest").html(data)

只是显示

{"result":"Torte"}

没有额外的字符。

我一直在解决这个问题几个小时 - 没有成功。 任何人都可以帮忙,请。

JSON.parse的数据必须是具有有效 JSON 的字符串。 这不是错误,而是警告您解析器发现无效令牌的异常。

此外:您的 JSON 不能以<'开头。

谢谢大家的支持! 问题是我在 php 文件中有一个 html 标题。

JSON.parse(JSON.stringify(data)); 不需要。

php 文件末尾的以下 2 行完成了这项工作:

$antwort['result'] = "Torte";
echo json_encode($antwort);

我将调用.map的数据以使用.push将它们加载到矩阵中,但我无法将数据的值放入JSON.parse

我练习的目标是通过选择一个 () 1 选项作为一个选项加载到 () 2 中。

为此,映射选择 1 中的数据,然后使用 onClick 事件将数据加载到数组中以读取选择 2 中的选项。

const filtraritems = [{ value: 'test', label: 'Probando la lista' }];

const buscarOpciones = items.map(item => (
      <option
        key={item.id}
        onClick={() => {
          const { value } = item;
          filtraritems.push(
            **JSON.parse('{"value": ${items.value}, "label": ${items.label}}')**
          );
          console.log(filtraritems);
        }}
      >
        {item.nombre}
      </option>
    ));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM