问题似乎很简单: 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>)
所以似乎&#39;数据&#39;包含其他字符。 另一方面,使用
使接收的json-string可见$("#idTest").html(data)
只是显示
{"result":"Torte"}
没有其他字符。
我一直在研究这个问题好几个小时 - 没有成功。 请有人帮帮忙。
答案 0 :(得分:2)
JSON.parse
中的数据必须是包含有效JSON的字符串。这不是错误,它是一个例外,警告您解析器找到了无效的令牌。
此外:您的JSON不能以<
或'
开头。
答案 1 :(得分:0)
谢谢大家的支持! 问题是我在php文件中有一个html标题。
JSON.parse(JSON.stringify(数据));不需要。
php文件末尾的以下2行完成工作:
$antwort['result'] = "Torte";
echo json_encode($antwort);
答案 2 :(得分:0)
我将调用 .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>
));