2016-05-02 2 views
1

Я пытаюсь создать вложенный объект так:Создать вложенный объект JSON динамически родитель и ребенок

[{ 
    "Countrys":{ 
       "CountryCode":"AF", 
       "CountryName":"AFGHANISTAN", 
       "CreatedBy":"[email protected]", 
       "CreatedOn":null, 
       "ModifiedBy":"Admin", 
       "ModifiedOn":"/Date(1394094559000)/" 
       }, 
    "StateCode":"BAM", 
    "CountryCode":"AF", 
    "StateName":"BAMIAN", 
    "CreatedBy":"[email protected]", 
    "CreatedOn":"/Date(1372617000000)/", 
    "ModifiedBy":null, 
    "ModifiedOn":null 
    }, 
    ........... 
] 

Мой код:

updateStateList = []; 
    //state countrys data variable 
    var stateCountrysCountryCode; 
    var stateCountrysCountryName; 
    var stateCountrysCreatedBy; 
    var stateCountrysCreatedOn; 
    var stateCountrysModifiedBy; 
    var stateCountrysModifiedOn; 

    //state open data variable 
    var StateCode; 
    var CountryCode; 
    var StateName; 
    var CreatedBy; 
    var CreatedOn; 
    var ModifiedBy; 
    var ModifiedOn; 

    $(".tableRow").each(function() { 

     stateCountrysCountryCode = $(this).find("#erSLCountrysCountryCode").val(); 
     stateCountrysCountryName = $(this).find("#erSLCountrysCountryName").val(); 
     stateCountrysCreatedBy = $(this).find("#erSLCountrysCreatedBy").val(); 
     stateCountrysCreatedOn = $(this).find("#erSLCountrysCreatedOn").val(); 
     stateCountrysModifiedBy = $(this).find("#erSLCountrysModifiedBy").val(); 
     stateCountrysModifiedOn = $(this).find("#erSLCountrysModifiedOn").val(); 

     StateCode = $(this).find("#erSLStateCode").val(); 
     CountryCode = $(this).find("#erSLCountryCode").val(); 
     StateName = $(this).find("#erSLStateName").val(); 
     CreatedBy = $(this).find("#erSLCreatedBy").val(); 
     CreatedOn = $(this).find("#erSLCreatedOn").val(); 
     ModifiedBy = $(this).find("#erSLModifiedBy").val(); 
     ModifiedOn = $(this).find("#erSLModifiedOn").val(); 

     CountrysObj = {}; 
     CountrysObj["CountryCode"] = stateCountrysCountryCode; 
     CountrysObj["CountryName"] = stateCountrysCountryName; 
     CountrysObj["CreatedBy"] = stateCountrysCreatedBy; 
     CountrysObj["CreatedOn"] = stateCountrysCreatedOn; 
     CountrysObj["ModifiedBy"] = stateCountrysModifiedBy; 
     CountrysObj["ModifiedOn"] = stateCountrysModifiedOn; 

     //state open data 
     statesObj = {}; 
     statesObj["StateCode"] = StateCode; 
     statesObj["CountryCode"] = CountryCode; 
     statesObj["StateName"] = StateName; 
     statesObj["CreatedBy"] = CreatedBy; 
     statesObj["CreatedOn"] = CreatedOn; 
     statesObj["ModifiedBy"] = ModifiedBy; 
     statesObj["ModifiedOn"] = ModifiedOn; 




     //CountrysObj.push(statesObj["StateCode"]); 

     updateStateList.push({ "Countrys": CountrysObj }); 
     updateStateList.push(statesObj); 

    }); 



    alert(JSON.stringify(updateStateList)); 

Я получаю как этот Json:

[{"Countrys":{"CountryCode":"AX","CountryName":"ALAND ISLANDS","CreatedBy":"[email protected]","CreatedOn":"","ModifiedBy":"Admin","ModifiedOn":"/Date(1394094559000)/"}},{"StateCode":"NS","CountryCode":"AX","StateName":"NOT SPECIFIED","CreatedBy":"[email protected]","CreatedOn":"/Date(1372617000000)/","ModifiedBy":"","ModifiedOn":""}] 

В th В результате я получаю дополнительные закрывающие 2-х фигурные скобки.

+0

Какой вопрос? Вы недостаточно ясны –

ответ

0

В Javascript, делать:

x = {} 

создает объект. Вот почему добавление (толкание) его в массив создает результат [{}]

Вы хотите создать объект всех данных состояния и иметь countries как свойство этого объекта.

что-то вроде этого:

//state open data 
statesObj = {}; 
statesObj["StateCode"] = StateCode; 
statesObj["CountryCode"] = CountryCode; 
statesObj["StateName"] = StateName; 
statesObj["CreatedBy"] = CreatedBy; 
statesObj["CreatedOn"] = CreatedOn; 
statesObj["ModifiedBy"] = ModifiedBy; 
statesObj["ModifiedOn"] = ModifiedOn; 
statesObj["Countries"] = CountrysObj; 
+0

спасибо #Itai Bar-Haim. – SoloThink

+0

Рад, что я мог помочь @SoloThink. В StackOverflow обычно отмечаются полезные сообщения путем поиска и/или маркировки полезных ответов в качестве принятых ответов. –

Смежные вопросы