如何将动态生成的JSON对象集成到其他对象中?

时间:2012-09-25 15:31:31

标签: javascript jquery

如何将此JSON对象放在下面的函数或对象中?

// this function generates an JSON Object dynamically       
$(".n_ListTitle").each(function(i, v) {
    var node = $(this);
    var nodeParent = node.parent();
    var nodeText = node.text();
    var nodePrice = node.siblings('.n_ListPrice');

    var prodPrice = $(nodePrice).text();
    var prodId = nodeParent.attr('id').replace('ric', '');
    var prodTitle = nodeText;

    var json = {
        id : prodId,
        price : prodPrice,
        currency : "CHF",
        mame : prodTitle
    };
    return json;
});

TDConf.Config = {
    products : [
        // here should be inserted the JSON Object
        {id: "[product-id1]", price:"[price1]", currency:"[currency1]", name:"[product-name1]"},
        {id: "[product-id2]", price:"[price2]", currency:"[currency2]", name:"[product-name2]"},
        ...

    })],
    containerTagId :"..."
};

如果不可理解请问:) 在此先感谢帮助我弄明白!

3 个答案:

答案 0 :(得分:1)

你可以这样做:

     TDConf.Config = {
        products : []
     };

     $(".n_ListTitle").each(function(i, v) {
        var node = $(this);
        var nodeParent = node.parent();
        var nodeText = node.text();
        var nodePrice = node.siblings('.n_ListPrice');

        var prodPrice = $(nodePrice).text();
        var prodId = nodeParent.attr('id').replace('ric', '');
        var prodTitle = nodeText;

        var json = {
            id : prodId,
            price : prodPrice,
            currency : "CHF",
            name : prodTitle
        };
        TDConf.Config.products.push( json );
    });

答案 1 :(得分:1)

如果您想将其添加到TDConf.Config.products,那么您可以这样做:

TDConf.Config.products.push(theDynamicJsonObj);

如果您想添加/覆盖现有TDConf.Config.products元素的属性,那么您可以这样做:

TDConf.Config.products[theNumericIndex] = $.extend(TDConf.Config.products[theNumericIndex], theDynamicJsonObj);

答案 2 :(得分:1)

你的功能不符合你的想法(return内的.each语句只能打破循环)。试试这个:

TDConf.Config = {
    products : [],
    // some other stuff
}
$(".n_ListTitle").each(function(i, v) {
    // some other code
    var json = {
        id : prodId,
        price : prodPrice,
        currency : "CHF",
        name : prodTitle
    };
    TDConf.Config.products.push( json );
});

你应该学习更多关于JavaScript,范围和明显的JSON,因为你似乎并不明白你所处理的是实际上不是JSON,它是一个JavaScript对象(略有差异,但仍然有区别)。