Проблемы с чтением JSON файла - PullRequest
0 голосов
/ 25 февраля 2020

Я не могу прочитать json файл в js. Я попробовал приведенный ниже код, но у меня есть ошибка: Uncaught SyntaxError: Неожиданный токен ':'

    <script>
    function loadJSON(callback) {   
      var xobj = new XMLHttpRequest();
      xobj.overrideMimeType("application/json");
      xobj.open('GET', 'weather.json', true);
      xobj.onreadystatechange = function () {
        if (xobj.readyState == 4 && xobj.status == "200") {
          callback(JSON.parse(xobj.responseText));
        }
      };
    }

    //usage:
    loadJSON(function(json) {
      console.log(json); 
    });
    </script>

Мой json файл содержит такие данные:

{
   "RegionPK{region='kirovohrad', observation=6, forecast=12, level=100000.0}":{
      "temperatureStatistics":{
         "count":26,
         "sum":123.400146484375,
         "min":3.850006103515625,
         "max":6.75,
         "average":4.746159480168269
      },
      "humidityStatistics":{
         "count":26,
         "sum":1797.7999954223633,
         "min":56.599998474121094,
         "max":79.4000015258789,
         "average":69.1461536700909
      },
      "cloudnessStatistics":{
         "count":17,
         "sum":0.0,
         "min":0.0,
         "max":0.0,
         "average":0.0
      }
   },
   "RegionPK{region='dnipropetrovsk', observation=0, forecast=3, level=100000.0}":{
      "temperatureStatistics":{
         "count":46,
         "sum":90.8670654296875,
         "min":1.181884765625,
         "max":2.481903076171875,
         "average":1.975370987601902
      },
      "humidityStatistics":{
         "count":46,
         "sum":3598.199996948242,
         "min":72.0,
         "max":83.30000305175781,
         "average":78.22173906409222
      },
      "cloudnessStatistics":{
         "count":32,
         "sum":0.0,
         "min":0.0,
         "max":0.0,
         "average":0.0
      }
   }
}

An здесь появляется ошибка: RegionPK{region='kirovohrad',observation=6,forecast=12,level=100000.0}":{ но в то же время мой файл прошел проверку json. Итак, могу ли я прочитать этот файл каким-либо образом или мой json файл недействителен?

1 Ответ

0 голосов
/ 25 февраля 2020

Предоставленные вами данные являются объектом JSON, вы не можете использовать его с JSON .parse - ему должна быть передана строка JSON, которая затем возвращает объект JSON.

Для предоставленных вами данных, если я вызываю JSON.parse(JSON.stringify(jsonFile)) (где jsonFile - данные, которые вы указали выше), он возвращает правильный JSON объект, поэтому я не думаю, что есть какие-либо проблемы с данные (как вы их предоставили).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...