Передача нескольких JSON массивов ajax jquery

354
01 июня 2017, 09:13

У меня есть некий json файл: [{1},{2}] [{3},{4}].
В этом файле есть 2 массива.
Как можно обратиться только к массиву [{3},{4}] посредством ajax, jquery?

$.ajax({ 
  type: 'post', 
  url: 'Servlet', 
  data: data, 
  response: 'json', 
  success: function(response) { 
    // как здесь получить доступ ко второму массиву? 
  }, 
  error: function(xhr, status, err) { 
    alert('Ошибка'); 
  } 
});

Answer 1

Такой файл не является корректным json файлом. Согласно стандарту json на верхнем уровне должен находиться ровно один массив/объект/число/строка.

Возможное решение: убрать response: json. Тогда вы будете получать не распарсенный json объект, а строку. Вам нужно будет самостоятельно разбить эту строку на две подстроки, каждая из которых представляет json массив. Затем преобразовать каждую строку в массив с помощью метода JSON.parse.

Разбить строку на две части можно, например, найдя в ней подстроку ] [:

let string = '[1,2] [3,4]'; 
let index = string.indexOf('] ['); 
let array1 = JSON.parse(string.substr(0, index + 1)); 
let array2 = JSON.parse(string.substr(index + 2)); 
console.log(array1); 
console.log(array2);

В большинстве случаев это будет работать.

READ ALSO
Как получить значение data-* из option?

Как получить значение data-* из option?

Работаю с элементом selectИз отдельного его option пытаюсь получить данные, которые я вставил в атрибут, для последующих вычислений

331
Не работает цикл for с replace()

Не работает цикл for с replace()

Доброго времени сутокУ меня есть код с подобным содержанием:

292
CSS обрезаный фон

CSS обрезаный фон

Здравствуйте, думал сам разобраться, но что то никак не получаетсяПроблема такова: имеется сайт с 3 фонами (в шапке одна картинка, вторая через...

228