1

Проблема с получением объекта

Тема: Проблема с получением объекта

Добрый день.

Получаю объекты из Wialon Hosting при помощи Remote API таким запросом:
svc=core/search_items&params={"spec":{
"itemsType":"avl_unit",
"propName":"sys_name",
"propValueMask":"*",
"sortType":"sys_name",
},
"force":1,
"flags":0xffffffff,
"from":0,
"to":"0xffffffff"}&sid=<sid>


Отправляю запрос и получаю ответ в javascript вот так:
var http=new ActiveXObject("WinHttp.WinHttpRequest.5.1");   
http.open('POST',url,false);
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=windows-1251');
http.setRequestHeader('Content-Language','ru');
http.setRequestHeader('Accept-Charset','windows-1251');
http.send(null);
eval('result='+decodeURIComponent(escape(http.responseText))); // тут декодирую ответ и получаю объект

При использовании этого кода для некоторых объектов(20 из 3300) не получается декодировать полученный ответ. Не отрабатывает функция decodeURIComponent(). Сам json приходит.
Что этими объектами может быть не так? В какую сторону копать?

2

Проблема с получением объекта

Re: Проблема с получением объекта

Добрый день

Попробуйте такую логику парсинга JSON'a

var res;
try {
   res = JSON.parse(json);
} catch(e1) {
   try {
      res = eval('('+json+')');
   } catch(e2) {
      try {
         res = eval('"'+json+'"');
      } catch(e3) {
         res = null;
      }
   }
}

PS если не секрет, под какой браузер пишете?