JSON Parse не работает, анализирует двумерный массив

Я пытаюсь проанализировать этот LOCAL XMLhttprequest, я получаю правильный текст ответа и отображаю его в сафари. Когда я делаю объект для JSON.parse() в ответном тексте, я получаю ошибки, такие как «неопознанный токен '"' " или "ожидаемый '}'", независимо от того, как я изменяю файл .txt, он не будет анализироваться в объект для меня

Я безуспешно пытался изменить .txt на правильный формат JSON.

{playerGrid: [["3","2","2","2","2","2","2","3","3","3"], ["3","2","2","2","2","2","2","2","2","2"], ["3","2","2","2","2","2","2","2","2","3"],["3","2","2","2","2","2","2","2","2","3"], ["4","2","2","2","2","3","2","2","2","3"], ["2","2","2","2","7","3","2","2","2","3"], ["2","2","2","2","7","2","2","2","2","2"], ["2","2","2","3","3","3","2","2","2","2"], ["2","2","2,"2","2","2","2","2","2","2"], ["2","2","2","2","2","2","2","2","2","2"]],
computerGrid: [["2","2","2","7","4","9","9","2","2","2"], ["2","9","2","2","2","2","2","2","2","2"], ["2","9","2","2","2","2","2","2","2","2"], ["2","9","2","2","9","9","2","2,"2","2"], ["2","2","2","2","2","2","2","2","2","2"], ["9","9","9","9","9","2","2","2","2","2"], ["2","2","2","2","7","2","2","2","9","2"], ["2","2","2","2","2","2","2","2","9","2"], ["2","2","2","2","2","2","2","2","9","2"], ["2","2","2","2","2","2","2","2","9","2"]]};

вот мой JOSN .txt

function fileRequest()
{

  var localRequest = new XMLHttpRequest();

  localRequest.open("GET", "sampleJSON.txt", false);

  localRequest.send(null);

  document.getElementById("jsonDiv").innerHTML = localRequest.responseText;

  var jsonObject = JSON.parse(localRequest.response);

  document.getElementById("jsonParsed").innerHTML = jsonObject.computerGrid;

}

вот моя простая функция, я сначала отображаю ответ, а потом выдает ошибку, когда пытаюсь разобрать данные. Спасибо

Я ожидаю объект, который я могу .computerGrid или .playerGrid.

почему JSON.parse(localRequest.response) не JSON.parse(localRequest.responseText) ?

Stranger in the Q 07.04.2019 00:18

Никогда не следует использовать опцию async:false. Это ужасная практика, и производители браузеров не рекомендуют ее.

charlietfl 07.04.2019 00:20

У вас отсутствует кавычка ,"2,"2" в 9-м или 10-м элементе массива. уверен, что это не проблема с опечаткой

Patrick Evans 07.04.2019 00:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
121
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

У вас есть некоторые ошибки в вашем json, просто выполните поиск по "2,, есть 2 вхождения, должно быть "2",.
Вам не хватает закрытия ".

Кроме того, чтобы JSON был действительным, он должен выглядеть так:

{"playerGrid":[["3","2","2","2","2","2","2","3","3","3"],["3","2","2","2","2","2","2","2","2","2"],["3","2","2","2","2","2","2","2","2","3"],["3","2","2","2","2","2","2","2","2","3"],["4","2","2","2","2","3","2","2","2","3"],["2","2","2","2","7","3","2","2","2","3"],["2","2","2","2","7","2","2","2","2","2"],["2","2","2","3","3","3","2","2","2","2"],["2","2","2","2","2","2","2","2","2","2"],["2","2","2","2","2","2","2","2","2","2"]],"computerGrid":[["2","2","2","7","4","9","9","2","2","2"],["2","9","2","2","2","2","2","2","2","2"],["2","9","2","2","2","2","2","2","2","2"],["2","9","2","2","9","9","2","2","2","2"],["2","2","2","2","2","2","2","2","2","2"],["9","9","9","9","9","2","2","2","2","2"],["2","2","2","2","7","2","2","2","9","2"],["2","2","2","2","2","2","2","2","9","2"],["2","2","2","2","2","2","2","2","9","2"],["2","2","2","2","2","2","2","2","9","2"]]}

Ключи playerGrid и computerGrid должны быть между ".

  1. Используйте JSON.parse(localRequest.responseText)

  2. Ваш JSON неверен, у вас отсутствуют кавычки вокруг некоторых чисел, таких как "2,

  3. Ключи объекта "playerGrid" и "computerGrid" также должны быть заключены в кавычки.

let d = `{
"playerGrid": [
  ["3","2","2","2","2","2","2","3","3","3"], ["3","2","2","2","2","2","2","2","2","2"],
  ["3","2","2","2","2","2","2","2","2","3"], ["3","2","2","2","2","2","2","2","2","3"],
  ["4","2","2","2","2","3","2","2","2","3"], ["2","2","2","2","7","3","2","2","2","3"],
  ["2","2","2","2","7","2","2","2","2","2"], ["2","2","2","3","3","3","2","2","2","2"],
  ["2","2","2","2","2","2","2","2","2","2"], ["2","2","2","2","2","2","2","2","2","2"]],
"computerGrid": [
  ["2","2","2","7","4","9","9","2","2","2"], ["2","9","2","2","2","2","2","2","2","2"],
  ["2","9","2","2","2","2","2","2","2","2"], ["2","9","2","2","9","9","2","2","2","2"],
  ["2","2","2","2","2","2","2","2","2","2"], ["9","9","9","9","9","2","2","2","2","2"],
  ["2","2","2","2","7","2","2","2","9","2"], ["2","2","2","2","2","2","2","2","9","2"],
  ["2","2","2","2","2","2","2","2","9","2"], ["2","2","2","2","2","2","2","2","9","2"]]
}`;

console.info(JSON.parse(d))

PS: вы всегда можете проверить свой json с помощью codebeautify.org/jsonvalidator

Другие вопросы по теме