以下に次のコードがあります。
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"}}
ここで何が起こっているのですか?!?!?
最初の3つのアラート(、、、imageType
およびuploadReason
割り当てを表示fileKey
)は期待どおりですが、iVO
オブジェクトは期待どおりに動作していません。このJSON.stringify
方法は通常のjson2.js
方法であり、私はそれを変更していません。
「新シーズン」がすべてiVO["images"]
のフィールド値として表示されるのはなぜですか?割り当てが正しく機能しないのはなぜiVO
ですか?!?それらを修正するには何をする必要がありますか?
の望ましい出力は次のJSON.stringify(iVO)
ようになります(きれいな印刷形式で):
{
"images":
{
"b2fc":
{
"imageType":"BoxArt",
"uploadReason":"New season",
"fileKey":"b2fc"
}
}
}
前もって感謝します!