我有一些javascript數組,我無法控制格式或變量名稱。我需要將其中的6個組合成一個json數組。我有它非常接近,但似乎無法讓它遍歷變量列表以及數組元素的數量。使用JavaScript將多個JavaScript數組合併成JSON
很明顯,我不記得如何處理JS中的變量或迭代以及我以前可以真正使用的一些幫助。
的軟件,其我需要解析輸出產生類似下面的東西:
<script type="text/javascript">
var orderNum = 'OrderNum-485';
var orderSubTotal ='130.8';
var orderTotal ='130.8';
var numOfItems ='4';
var items =new Array('Item Name 1','Item Name 2','Item Name 3','Item Name 4');
var ids =new Array('item-id-1','item-id-2','item-id-3','item-id-4');
var codes =new Array('ITEM-CODE-1','ITEM-CODE-2','ITEM-CODE-3','ITEM-CODE-4');
var qtys =new Array('1','1','1','1');
var price =new Array('12.95','46.7','1.2','69.95');
var orderTax ='0';
var orderShipping ='0';
var appliedPromoIdList ='';
var coupon ='';
var storeId ='store_id';
var activeShipPromotionCount ='';
var itemImages =new Array('http://image_url','http://image_url','http://image_url','http://image_url');
</script>
凡爲我需要傳遞數據過於軟件所需的以下(作爲一個對象,我管理得到它使用字符串完成):
[
{
"item_id":"item-id-1",
"desc":"ITEM-CODE-1",
"amount":"12.95",
"quantity":"1",
"name":"Item Name 1",
"image": "http://image_url",
{
"item_id":"item-id-2",
"desc":"ITEM-CODE-2",
"amount":"46.7",
"quantity":"1",
"name":"Item Name 2",
"image": "http://image_url",
]
這是我想出了:
<script type="text/javascript">
var orderId = orderNum;
var createItemObjects = function() {
var keys = new Array ("item_id","desc","amount","quantity","name","image");
var yahooKeys = new Array ("ids","codes","price","qtys","items","itemImages");
var item,cartItems = [];
var c = numOfItems;
var k = yahooKeys.length;
var i = 0;
item = {};
for (; i < k; i++) {
var arrayName = yahooKeys[i].toString();
var buffer = eval('' + arrayName);
item[keys[i]] = buffer[0] //Ideally this should be the full range of 0-3 so that you can see each of the 4 items.
document.write("<br />Loop: "+i);
cartItems.push(item);
}
return cartItems;
它產生正確格式化數據,但6個相同的元素的副本被緩衝的硬編碼值指示線沿線的
現在是怎樣,你需要一個對象(在JS運行時)還是字符串(以JSON格式)? – Bergi
我相信我需要一個對象。由於這是一項新功能,文檔相當薄弱。我已經將它解析爲一個JSON格式的字符串,它不會採取它。他們的示例代碼生成一個對象。 –