Попытка использовать JSON для структурирования объекта, который содержит массив объектов - PullRequest
1 голос
/ 15 декабря 2011

При попытке структурировать объект, который содержит массив объектов, я получаю пустой массив, когда вижу, что у меня есть значения.

 filterDto: {
            Expressions: []   
        },

/* Using a tempArray to see if its an object issue of my filterDto.Expressions */

fnBuildFilterValues: function() {

            var invoiceObj = this;

             var tempArray = new Array();


              $("#tblExpressions tr").each(function() {

                var doWeAddRow = false;
                var filterObject = {
                    "Field": {},
                    "Condition": {},
                    "DataValue": {}
                };

                $(this).find(":input").each(function() {

                    if (  $(this).attr('name') === 'ddlFieldExp' ) {
                        filterObject.Field =  $(this).val();
                    }
                    if (  $(this).attr('name') === 'ddlConditionExp' ) {
                        filterObject.Condition =  $(this).val();
                    }
                     if (  $(this).attr('name') === 'tbDataExp' ) {
                        filterObject.DataValue =  $(this).val();
                    }

                }); /* Inner loop */

              tempArray.push(filterObject); 

              }); /* Outer loop */

              invoiceObj.filterDto.Expressions = tempArray;
        },

И я хочу использовать что-то вроде:

     var objToString = {};
     objToString = JSON.stringify(invoiceObj.filterDto)

Я пытался использовать = {} как средство, но я все равно получаю пустую строку ObjToString при заполнении моего массива. Это показано так: {"Expressions":[]}

Если я сделаю быстрый просмотр в VS в правой части, JSON.Stringify, я получу это:

    JSON.stringify(invoiceObj.filterDto) 
    "{"Expressions":[{"Field":"6","Condition":"0","DataValue":"2"}]}"   String

Но почему ObjToString показывает пустой результат?

1 Ответ

0 голосов
/ 15 декабря 2011

Вставленный вами код работает нормально, о чем свидетельствует по этому коду (сериализация JSON в console.log).

Ваша проблема в том, что fnBuildFilterValues не вызывается до попытки сериализации? Ваша проблема в том, что ни один из ваших селекторов не дает никаких результатов? Проблема не в вставленном коде.

...