Ответ 1
Скорее всего, ваш response
уже является объектом JavaScript, и его не нужно анализировать.
Удалите строку var json = JSON.parse(response);
, и ваш код должен работать.
Я не понимаю, что пошло не так при анализе файла:
{ "t": -9.30, "p": 728.11, "h": 87.10 }
Код javascript:
<script type="text/javascript">
function check() {
$.get("http://....file.json", function(response, status, xhr) {
if (status == "success") {
var json = JSON.parse(response);
$("#temp").html(json.t + "°");
$("#pressure").html(json.p + " mm hg");
}
if (status == "error") {
$("#temp").html("error");
}
});
}
Я получаю сообщение об ошибке:
SyntaxError: JSON Parse error: Unexpected identifier "object"
Скорее всего, ваш response
уже является объектом JavaScript, и его не нужно анализировать.
Удалите строку var json = JSON.parse(response);
, и ваш код должен работать.
В соответствии с документами jQuery на $.ajax
(это то, что $.get
использует внутренне):
dataType:... Если ни один не указан, jQuery попытается вывести его на основе типа ответа MIME (тип XML MIME даст XML, в 1.4 JSON будет получить объект JavaScript...)
Таким образом, ваш ответ скорее всего является объектом. Когда вы делаете JSON.parse(response)
, вы действительно делаете
JSON.parse("[object Object]")
потому что JSON.parse
принуждает свой аргумент к строке, а простые объекты по умолчанию строятся на [object Object]
. Начальный [
приводит JSON.parse
к ожиданию массива, но затем зажимает токен object
, который не соответствует грамматике JSON.
Удалите строку JSON.parse
, потому что response
уже разбирается в объекте с помощью jQuery.