2017-01-05 25 views
2

複数のjson文字列を1つの文字列に変換したい。複数のjson文字列を1つの文字列に変換する

これは複数のjson文字列です。どのようにして1つの文字列に変換できますか。この文字列をajaxの応答として取得しています。このような

[ 
    { 
     "name1":"pizaa", 
     "count1":8 
    }, 
    { 
     "name2":"sandvich", 
     "count2":8 
    }, 
    { 
     "name3":"Burger", 
     "count3":8 
    }, 
    { 
     "name4":"TEST category", 
     "count4":8 
    }, 
    { 
     "name5":"TEST category", 
     "count5":8 
    }, 
    { 
     "name6":"TEST category", 
     "count6":8 
    }, 
    { 
     "name7":"final test", 
     "count7":8 
    }, 
    { 
     "name8":"final final test", 
     "count8":8 
    } 
] 

出力:

[ 
    { 
     "name1":"pizaa", 
     "count1":8, 
     "name2":"sandvich", 
     "count2":8 
    } 
    ] 
+0

ない非常に明確

JSON.stringifyを使用しました。すべてのオブジェクトのすべてのフィールドを1つのオブジェクトに結合しますか?なぜ最初の2つのオブジェクトだけを検討しているのですか? – pedrorijo91

+0

すべてのフィールドに参加したいです。私はちょうど私がこのような出力を得たい出力を見せていただけです。 – Cool

+1

@Cool - 'count'はオブジェクトのプロパティです。オブジェクトを1つにマージしようとすると、 'count'プロパティがオーバーライドされ、すべてのオブジェクトに対して' count'の値が同じでない限り、望ましい出力が得られません。 – nikhil

答えて

1

顔をしています。ここで私は

var json = [{ 
 
    "name1": "pizaa", 
 
    "count": 8 
 
}, { 
 
    "name2": "sandvich", 
 
    "count": 8 
 
}, { 
 
    "name3": "Burger", 
 
    "count": 8 
 
}, { 
 
    "name4": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name5": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name6": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name7": "final test", 
 
    "count": 8 
 
}, { 
 
    "name8": "final final test", 
 
    "count": 8 
 
}] 
 

 
var finalString = ''; 
 
finalString = JSON.stringify(json); 
 
finalString = finalString.replace(/},{/g, ","); 
 
alert(finalString);

+0

今後の参考として、外部ソースへのリンクが死んでしまったり死んでしまったりする可能性があるので、解答のテキストにコードを含めてください。 – Jhecht

+0

ok、編集と提案のおかげで:) @Jhecht –

0

私はあなたの質問に対する解決策を投稿してみました。

var data = [ 
 
    { 
 
     "name1":"pizaa", 
 
     "count1":8 
 
    }, 
 
    { 
 
     "name2":"sandvich", 
 
     "count2":8 
 
    }, 
 
    { 
 
     "name3":"Burger", 
 
     "count3":8 
 
    }, 
 
    { 
 
     "name4":"TEST category", 
 
     "count4":8 
 
    }, 
 
    { 
 
     "name5":"TEST category", 
 
     "count5":8 
 
    }, 
 
    { 
 
     "name6":"TEST category", 
 
     "count6":8 
 
    }, 
 
    { 
 
     "name7":"final test", 
 
     "count7":8 
 
    }, 
 
    { 
 
     "name8":"final final test", 
 
     "count8":8 
 
    } 
 
]; 
 

 
var result = []; 
 
var reduced = {}; 
 
data.map(function(a) { 
 
    for(var p in a) { 
 
    reduced[p] = a[p]; 
 
    } 
 
}); 
 
result[0] = reduced; 
 
console.log(result);

+0

ありがとうマンそれは動作します。ありがとうございました – Cool

+0

私のコードを少し更新しました。あなたは別の顔をしたいかもしれません。 – cringe

0

はこれを試してみてください:私はjsfiddleでソリューションを作成しました

var jsonData = [{"name1":"pizaa","count1":8},{"name2":"sandvich","count2":8},{"name3":"Burger","count3":8},{"name4":"TEST category","count4":8},{"name5":"TEST category","count5":8},{"name6":"TEST category","count6":8},{"name7":"final test","count7":8},{"name8":"final final test","count8":8}]; 
var modJson = {}; 
$.each(jsonData, function(index, val) { 
    modJson['name'+(index+1)] = val['name'+(index+1)]; 
    modJson['count'+(index+1)] = val['count'+(index+1)]; 
}); 
console.log(modJson); 
関連する問題