将JavaScript对象转换为字符串

6

我想要将一个对象转化为字符串。

我希望得到以下输出

{"1":{"valeur":"dalebrun","usager":"experttasp","date":"2013-08-20 16:41:50"}, "2": {"valeur":"test","usager":"experttasp","date":"2013-08-20 16:41:50"}}

但是我得到了这个。
{"valeur":"dalebrun","usager":"experttasp","date":"2013-08-20 16:41:50"}, {"valeur":"test","usager":"experttasp","date":"2013-08-20 16:41:50"}

我的工作内容

var objVal = {}; //value....
var data = {}; //other value....
var object = $.extend({}, objVal, data); //concat the object 
JSON.stringify(object); 

你有一个变量 var date,后来你使用了 data - Ron van der Heijden
抱歉,是数据(data),不是日期(date)。 - davidlebr1
我想不到有比将一个问题标记为不清晰更好的用例了,比如当你像我一样向OP提供答案,他们说它可以运行但不是他们要找的。 - Dexygen
Giovanni的答案是最接近的答案。但是非常感谢你的帮助和时间@George Jempty。我并没有说你没有给出一个OP的答案。 - davidlebr1
2个回答

6
当您连接对象时,会得到一个数组;您想要一个包含两个元素的映射表,分别使用id“1”和“2”。
var objVal = {};   //value....
var data = {};     //other value....

var object = {}
object["1"] = objVal;
object["2"] = date;
JSON.stringify(object); 

谢谢您的回复。但是我会有多个对象,所以它将是“1”:.... “2”:..... “3”:...... ....... - davidlebr1
在你的问题中,看起来你只有一个对象。那么请使用 while/for 循环,Dave。 - cocco
如果您的对象存储在数组中(或以某种可迭代的方式存储),则可以使用循环将值放入“对象”映射中。 - Giovanni P.
我正在尝试使用循环,类似于:var data = {}; var objVal = {}; for(var i in data) { var object = {}; object[i] = $.extend({}, objVal, data);} JSON.stringify(object); // 但它不起作用 :( - davidlebr1
虽然使用 while 循环也是可行的,但请看我的回答以获取基于下划线的解决方案。 - Dexygen

5
我找到了解决办法!
我在对象上进行了一个for循环,并遍历了对象中的每个元素。感谢你的帮助。@Giovanni的答案帮助我找到了解决方案。
解决方案:
var data = {}; //values....
var objVal = {}; //other values....
var final = {};
var index = 1;
for(var key in data)
{
    final[index] = data[key];
    index = index + 1;
}
final[index] = objVal;
JSON.stringify(final);

输出结果如下:

{"1":{"valeur":"dfgdfg","usager":"experttasp","date":"2013-08-23 10:36:54"},"2":{"valeur":"uuuuuuuuuu","commentaire":"defg","usager":"experttasp","date":"2013-08-23 10:37:26"},"3":{"valeur":"uuuuuuuuuu","commentaire":"yesssss","usager":"experttasp","date":"2013-08-23 10:38:38"}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接