我有这个代码:
$.ajax({
dataType: 'text',
url: '/_/js/answers.json',
type: "GET",
success: function (data) {
alert(data);
alert(data.code);
var result = JSON.parse(data);
var hey = JSON.parse('{"code": 123}');
alert(hey.code);
alert(result.code);
},
error: function () {
alert("code not found");
}
});
在第一个警报中,alert(data)
它在第二个警报中向我显示“{“code”:123}”alert(data.code)
,它告诉我undefined
,在第三个警报中alert(hey.code)
,它向我展示了123
,这就是我想要的,但在第四个警报中,控制台告诉我Uncaught SyntaxError: Unexpected token '
.
当我改变JSON.parse
to $.parseJSON
,它做完全相同的事情。
我不知道出了什么问题,json 没问题(和 var 中的 json 完全一样嘿)。
我将 json 传递给服务器,如下所示:javascript:
var json = {code: code};
json = JSON.stringify(json);
json = {data: json};
$.ajax({
url: "/_/js/write-json.php",
type: "POST",
dataType: 'json',
data: json
});
php:
<?php
$myFile = "answers.json";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh,var_export($_POST['data'], true));
fclose($fh);
?>
谢谢,bhc11。
The '
JSON 周围的字符使其成为 JavaScript 字符串,并且不构成数据的一部分。
看起来您在通过 HTTP 请求的 JSON 中包含这些字符,因此它们就在那里do构成数据的一部分。
这不是有效的 JSON。删除引号。
你应该有:
{"code": 123}
Not
'{"code": 123}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)