0

push({}) を使用して JavaScript 配列を作成しても問題ありませんが、フィールドの 1 つに独自のリストがあります。そのため、レベルダウンで push() を実行するのに問題があります。

次のように、tradeDetails 配列が定義され、EXTENSIONS フィールドには値のコレクションがあります。これをどのように処理するかを以下に示します。

function TradeDetailsToJson(xml) {    

var tradeDetails = [];
var tradeId = $(xml).find("tradeHeader tradeId").text();
var tradeDate = $(xml).find("tradeHeader tradeDate").text();
var tradeType = $(xml).find("tradeHeader tradeType").text();
var counterparty = $(xml).find("tradeHeader counterparty").text();
var internalUnit = $(xml).find("tradeHeader internalUnit").text();
var buySell = $(xml).find("tradeHeader buySell").text();
var status = $(xml).find("tradeHeader status").text();
tradeDetails.push({
    "tradeId": tradeId,
    "tradeDate": tradeDate,
    "tradeType": tradeType,
    "counterparty": counterparty,
    "internalUnit": internalUnit,
    "buySell": buySell,
    "status": status,
    "**extensions**":[]
});

// NOW I'D LIKE TO PUSH MY EXTENSIONS !!
var extName = ""
var extValue = "";
$(xml).find("extensions extension").each(function () {
    extName = $(this).find("name").text();
    extValue = $(this).find("value").text();
    //tradeDetails[extensions].push({ "name": name, "value": value }); ??????
});
}

よろしくお願いします。ボブ

4

1 に答える 1

1

extensionsプロパティで再度プッシュを使用しますか?

tradeDetails.push({
    "tradeId": tradeId,
    "tradeDate": tradeDate,
    "tradeType": tradeType,
    "counterparty": counterparty,
    "internalUnit": internalUnit,
    "buySell": buySell,
    "status": status,
    "extensions":[]
});

tradeDetails.extensions.push({ "name": name, "value": value });

あなたが試したことextensionsで、オブジェクトのキーであるtradeDetailsを引用符で囲む必要があります。

だから変える

tradeDetails[extensions].push({ "name": name, "value": value });

tradeDetails["extensions"].push({ "name": name, "value": value });
于 2013-06-06T22:21:31.743 に答える