Показать сообщение отдельно
  #1 (permalink)  
Старый 10.12.2018, 02:02
Интересующийся
Отправить личное сообщение для ishurgaya Посмотреть профиль Найти все сообщения от ishurgaya
 
Регистрация: 12.08.2015
Сообщений: 29

Ошибка при чтении json полученного через ajax
Здравствуйте.

Хочу сделать подгрузку json через ajax, с последующим поиском по json, по :

var json;
var xmlhttp;
var products;		

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
		if (xmlhttp.readyState==4 && xmlhttp.status==200)
		{
			json = JSON.stringify(xmlhttp.responseText);

			json = JSON.parse(json);
		}
}
xmlhttp.open("GET","/app/js/lib.json",true); 
xmlhttp.send();
		
function searchPositions(arr, searchKey) 
{
return arr.filter(obj => Object.keys(obj).some(key => obj[key].includes(searchKey)));
}

products = searchPositions(json, "текст");


В итоге получаю ошибку в строке return arr.filter(obj => Object.keys(obj).some(key => obj[key].includes(searchKey))); :
main.js:270 Uncaught TypeError: arr.filter is not a function

Причем если json вставить сразу в код, примерно так, то ошибок не будет и поиск отрабатывает:

json = JSON.stringify([{"id":1,"low_name":"белый карандаш","name":"Карандаш"},{"id":2,"low_name":"синий фломастер","name":"Фломастер"},{"id":3,"low_name":"черный маркер","name":"Маркер"}]);



Как исправить эту ошибку?

Файл json , который я пытаюсь получить через ajax создается заново каждый день и встроить его в js файл нет возможности.
Ответить с цитированием