I持って次のコード:Javascriptオブジェクトがフィールドを更新しないのはなぜですか?以下は、
var imageType = "BoxArt";
var uploadReason = "New season";
var fileKey = "b2fc";
alert("imageType = " + imageType);
alert("uploadReason = " + uploadReason);
alert("fileKey = " + fileKey);
var iVO = { "images":{}};
var thisImage = fileKey;
iVO["images"][thisImage.fileKey] = thisImage;
iVO["images"][thisImage.imageType] = imageType;
iVO["images"][thisImage.uploadReason] = uploadReason;
alert("iVO['images'][thisImage.imageType] = " + iVO["images"][thisImage.imageType]);
alert("iVO['images'][thisImage.uploadReason] = " + iVO["images"] [thisImage.uploadReason]);
alert("iVO['images'][thisImage.fileKey] = " + iVO["images"][thisImage.fileKey]);
alert("JSON.stringify(iVO):\n" + JSON.stringify(iVO));
私は次の出力を取得し、これを実行します。
imageType = "BoxArt"
uploadReason = "New season"
fileKey = "b2fc"
iVO['images'][thisImage.imageType] = "New season"
iVO['images'][thisImage.uploadReason] = "New season"
iVO['images'][thisImage.fileKey] = "New season"
JSON.stringify(iVO):
{"images"}:{"undefined":"New season"}}
はここで何が起こっていますか?!?!?予想通り(imageType
、uploadReason
、およびfileKey
割り当てを示す)
最初の3つのアラート
がありますが、iVO
オブジェクトは、私が期待まったくのように振る舞っていません。
JSON.stringify
メソッドは通常の
json2.js
メソッドですが、変更していません。
「ニューシーズン」がすべてフィールド値のiVO["images"]
として表示されるのはなぜですか?iVO
割り当てが正しく機能しないのはなぜですか? 修正するためには何が必要ですか?
JSON.stringify(iVO)
の所望の出力は、(かなり-印刷形式で)次のようになります。事前に
{
"images":
{
"b2fc":
{
"imageType":"BoxArt",
"uploadReason":"New season",
"fileKey":"b2fc"
}
}
}
ありがとう!