如何解决此错误JSON.parse: unexpected character at line 1 column 2 of the JSON data
我正在尝试从自动收录器链接中显示特定的JSON内容,但遗憾的是无法使其正常工作,因为错误不断弹出。
HTML
<input id="currency1" type="text">
<span>Currency1</span>
<input id="currency2" type="text">
<span>Currency2</span>
<div>
<button type="button" onclick="refreshPrice()">
Refresh Price
</button>
<span id="lastPrice"></span>
</div>
来自Ticker Link的JSON响应
{"ticker":{"high":"16985100","low":"16730900","last":"16879000"}}
JAVASCRIPT
var lastPrice;
function refreshPrice() {
$lastPrice = $('#lastPrice');
$lastPrice.html("");
$.get("https://example.com") //Ticker link
.then(function (data) {
lastPrice = JSON.parse(data).ticker.last - 100000;
lastPrice.html(lastPrice);
});
}
refreshPrice();
$('#currency2').keyup(function() {
currency2Val = parseFloat($(this).val());
if (currency2Val) {
currency1Val = currency2Val * lastPrice;
$('#currency1').val(parseInt(currency1Val));
}
else {
$('#currency1').val("");
}
});
$('#currency1').keyup(function() {
currency1Val = parseInt($(this).val());
if (currency1Val) {
currency2Val = currency1Val / lastPrice;
$('#currency2').val(currency2Val.toFixed(8));
}
else {
$('#currency2').val("");
}
});
感谢任何帮助,谢谢
答案 0 :(得分:2)
尝试删除JSON.parse,
var lastPrice;
function refreshPrice() {
$lastPrice = $('#lastPrice');
$lastPrice.html("");
$.get("https://example.com") //Ticker link
.then(function (data) {
debugger;
lastPrice = data.ticker.last - 100000;
lastPrice.html(lastPrice);
});
}
同时放置一个调试器,看看你的回复是什么。
答案 1 :(得分:1)
假设自动收报机使用正确的Content-Type
标头进行响应,jQuery将已经为您解析了响应。因此请删除JSON.parse
:
$.get("https://example.com") //Ticker link
.then(function (data) {
lastPrice = data.ticker.last - 100000;
$lastPrice.html(lastPrice);
});
(我还使用lastPrice
而不是$lastPrice
为the issue Jaromanda X pointed out添加了修补程序。)
dataType
(默认:智能猜测(xml,json,脚本或html))类型:字符串
您期望从服务器返回的数据类型。 如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西都将作为字符串返回。)
答案 2 :(得分:0)
响应已经是JSON格式,你不应该通过JSON.parse传递它,因为JSON.parse期望输入是一个stringify JSON
试试这个:
lastPrice = data.ticker.last - 100000;