【问题标题】:converting array to JSON [duplicate]将数组转换为 JSON [重复]
【发布时间】:2014-06-11 02:33:36
【问题描述】:

所以我有一个看起来像这样的数组

var me =[
{'we':'me','see':'tree','lee':'bee'},
{'we':'me','see':'tree','lee':'bee'},
{'we':'me','see':'tree','lee':'bee'},
{'we':'me','see':'tree','lee':'bee'}
];

如何将其转换为以“{”开头并以“}”结尾的 JSON 对象

【问题讨论】:

  • 您想要什么属性名称?尝试将 JavaScript 数组转换为 JSON 对象是没有意义的。

标签: javascript arrays json


【解决方案1】:

JSON.stringify?

var me =[
    {'we':'me','see':'tree','lee':'bee'},
    {'we':'me','see':'tree','lee':'bee'},
    {'we':'me','see':'tree','lee':'bee'},
    {'we':'me','see':'tree','lee':'bee'}
];

console.log(JSON.stringify(me));    // returns whole JSON.
console.log(JSON.stringify(me[0])); // returns what you want, 'starting with {}'.

//    if you want to start with {} with all data:
console.log(JSON.stringify({me:me}));

【讨论】:

  • 问题是要求将 array 转换为 JSON 对象,而不是其中的一个对象。
  • 他要求从 {} 开始。
  • 确实如此。这个问题没有意义。我不认为它在目前的状态下是可以回答的。
【解决方案2】:

像这样:

JSON.stringify(me.reduce(function(o, v, i) {
    o[i] = v;
    return o;
}, {}));

【讨论】:

  • 那行不通。这会给你一个 JSON 数组,而不是一个对象。
  • 编辑后,将数组中的一个对象转换为JSON对象,而不是将数组转换为一个。
  • 这就是问题所在。不过,这个要求仍然很奇怪。
  • 确实……真的不知道为什么 OP 需要这种黑魔法。
【解决方案3】:
var myJsonString = JSON.stringify(me);

更新

var me =[
{'we':'me','see':'tree','lee':'bee'},
{'we':'me','see':'tree','lee':'bee'},
{'we':'me','see':'tree','lee':'bee'},
{'we':'me','see':'tree','lee':'bee'}
];


var myjson={'list':""}
myjson.list=me;
var myJsonString = JSON.stringify(myjson);
console.log(myJsonString);

【讨论】:

  • 那行不通。这会给你一个 JSON 数组,而不是一个对象。
  • 你说得对@Quentin
猜你喜欢
  • 2012-02-08
  • 2017-09-06
  • 1970-01-01
  • 2019-04-10
  • 2020-02-06
  • 2020-11-26
  • 2015-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多