Синтаксический анализ JQuery JSON / AJAX (ключи 'remove' и '__proto__' в массивах?) - PullRequest
2 голосов
/ 04 марта 2011

Я вижу странную проблему при извлечении объекта JSON из URL-адреса с использованием функции Jquery $ .ajax.

Я использую следующий вызов JQuery для извлечения объекта JSON:

1  $.ajax({
2       url: '/test/getjson',
3       success: function(data){
4                     doSomething(data); //(breakpoint here)
5                },
6       error: function(x,y,z){
7                     //error..
8               }
9  });

URL-адрес '/ test / getjson' возвращает следующий объект JSON (Вот как выглядит ответ в Firebug):

{
    "rsp": {
        "date": "1299195954782" ,
        "type": "Type1" ,
        "Main": {
            "Category1" : {
                "private" : "Y" ,
                "properties" : {
                    "one" : {
                        "response" : "" ,
                        "text" : "label" ,
                        "type" : "property"
                    },
                    "two" : {
                        "options" : [
                            "1" ,
                            "2" ,
                            "3" ,
                            "4" ,
                            "5" ,
                            "6" ,
                            "7" ,
                            "8" ,
                            "9" ,
                            "10"
                        ],
                        "response" : "1" ,
                        "text" : "label2" ,
                        "type" : "property2"
                    }
                }
            },
            "username" : "spiderman"
        }
    }
}

Проблема

Проблема заключается в том, что все массивы ву объекта JSON есть дополнительные значения с ключами 'remove' и '__proto__' после анализа в JQuery (отладчик Firebug просматривает объект данных JSON, точка останова в строке 4 во фрагменте JS выше):

enter image description here

[объект JSON, видимый отладчиком Firebugs]

А вот более внимательный взгляд на странную часть объекта JSON:

enter image description here

[Пристальный взгляд на неизвестные данные]

Спасибо всем впереди:)

1 Ответ

8 голосов
/ 04 марта 2011

Прекратите использовать «for ... in» для перебора массивов и используйте индексную переменную.

for (var i = 0; i < theArray.length; ++i) {
  var element = theArray[i];
  // ...
}

Эти свойства объекта есть благодаря среде выполнения JavaScript в вашем браузере.Я не уверен, почему они доставят вам неприятности, потому что они не должны быть повторяемыми.Возможно, если вы покажете фактический код, который вам нужен для обработки ответа ajax, проблема может стать более понятной.

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