2017-07-20 13 views
0

のために同じキーを持つJSONオブジェクトを作成します。私は次の形式を持っているAPI呼び出しのJSONオブジェクトを作成しようとしているAPIの呼び出し

.... 
    "Key": "Value", 
    "Package": { 
    "Dimensions": { 
     "UnitOfMeasurement": { 
     "Code": "IN", 
     "Description": "inches" 
     }, 
     "Length": "20", 
     "Width": "25", 
     "Height": "30" 
    }, 
    "PackageWeight": { 
     "UnitOfMeasurement": { 
     "Code": "Lbs", 
     "Description": "pounds" 
     }, 
     "Weight": "80" 
    } 
    }, 
    "Package": { 
    "Dimensions": { 
     "UnitOfMeasurement": { 
     "Code": "IN", 
     "Description": "inches" 
     }, 
     "Length": "15", 
     "Width": "24", 
     "Height": "27" 
    }, 
    "PackageWeight": { 
     "UnitOfMeasurement": { 
     "Code": "Lbs", 
     "Description": "pounds" 
     }, 
     "Weight": "50" 
    } 
    }, 
    "Key": "Value", 
    .... 

、必要に応じて、私はできるだけ多くの「パッケージ」オブジェクトを追加する必要があります。しかし、私はこれをさまざまな方法で試してみましたが、使用する変数を解析するたびに最初のオブジェクトが上書きされ、最後のオブジェクトのみで終了します。 (として結果を必要得るために:

   for (var i=0;i<inputObject.packages.length;i++) { 
        lineItems+='"Package" + i : { ... }' 
        } 

編集:あなたのパッケージ、つまりナンバリングについてどのように

var lineItems = '{'; 
    for (var i=0;i<inputObject.packages.length;i++) { 
     lineItems += '"Package": {"PackagingType": {"Code": "02","Description": "Rate"},"Dimensions": {"UnitOfMeasurement": {"Code": "IN","Description": "inches"},"Length": ' + inputObject.packages[i][0].toString() + ',"Width": ' + inputObject.packages[i][1].toString() + ',"Height": ' + inputObject.packages[i][2].toString() + '},"PackageWeight": {"UnitOfMeasurement": {"Code": "Lbs","Description": "pounds"},"Weight": ' + inputObject.packages[i][3].toString() + '}}'; 
     if (i !== inputObject.packages.length-1) { 
      lineItems += ','; 
     } 
    } 

    lineItems += '}'; 

    lineItems = JSON.parse(lineItems); 
+0

JSONが無効です。鍵は重複することはできません(複数の「パッケージ」鍵が無効です)。 –

+1

なぜ文字列を作成してオブジェクトに解析するのですか?オブジェクトを直接ビルドすることはできますか? –

+0

ええ、それは無効なJSONですが、私はそれを回避する方法を探しています。オブジェクトを直接作成しようとしましたが、同じことが起こります –

答えて

0

この

は、私はまだ運で、現時点ではしようとしているものです配列 - それはJSONではないので)が、ここでは例です:

var a=[]; 
 
var b={"package": {"c":100,"d":200,"e":300}} 
 
var c={"package": {"c":800,"d":700,"e":600}} 
 
a.push(b); 
 
a.push(c); 
 
console.log(a);

+0

それは良いアイデアです、もし私が何とか数字を削除できれば –

関連する問題