Javascript 带方括号的JSON.stringify

Javascript 带方括号的JSON.stringify,javascript,json,stringify,Javascript,Json,Stringify,我有一个JS对象: var source = {}; source.quantity = 1; source.text = 'test'; 现在我要说: var json = JSON.stringify(source); json如下所示: {"quantity":"1","text":"test"} 我希望它是这样的: [{"quantity":"1"},{"text":"test"}] 我可以怎么做?从source JSON.stringify( Object.keys(s

我有一个JS对象:

var source = {};
source.quantity = 1;
source.text = 'test';
现在我要说:

var json = JSON.stringify(source);
json如下所示:

{"quantity":"1","text":"test"}
我希望它是这样的:

[{"quantity":"1"},{"text":"test"}]
我可以怎么做?

source

JSON.stringify(
    Object.keys(source)
          .map(
              function (e) {
                  var o = {};
                  o[e] = source[e];
                  return o;
              }
          )
); // "[{"quantity":1},{"text":"test"}]"
source

JSON.stringify(
    Object.keys(source)
          .map(
              function (e) {
                  var o = {};
                  o[e] = source[e];
                  return o;
              }
          )
); // "[{"quantity":1},{"text":"test"}]"

我想这是不可能的,但你可以做到:

var source = {};
source.quantity = 1;
source.text = 'test';

var result = [];

for(var i in source) {
    var obj = {};
    obj[i] = source[i];
    result.push(obj);
}

var json = JSON.stringify(result);

我希望这能对您有所帮助。

我想这是不可能的,但您可以这样做:

var source = {};
source.quantity = 1;
source.text = 'test';

var result = [];

for(var i in source) {
    var obj = {};
    obj[i] = source[i];
    result.push(obj);
}

var json = JSON.stringify(result);

我希望这能对您有所帮助。

方括号表示数组。所以你所要做的就是字符串化一个数组。但是,为什么要将每个属性单独指定为它自己的对象?这似乎不是很有用。@FelixKling,因为PHP json_decode()不喜欢这样:{“数量”:“1”,“文本”:“测试”}这是胡说八道,当然
json_decode
理解有效的json:@FelixKling,当我在服务器上收到上面的json时,数据看起来是这样的:
{quantity:1,text:“test”}
在json_解码后,我最终陷入了混乱:
stdClass对象([[],1,[])
我在这里遗漏了什么?问题可能是我在某个地方失去了引号,因此我的有效json将不再有效。我使用Sencha
Ext.Ajax.request({
通过CodeIgniter的
$json=$this->input->post('json');
方括号发送和接收它表示一个数组。所以您所要做的就是字符串化一个数组。但是,为什么您要将每个属性单独指定为它自己的对象?这似乎不是很有用。@FelixKling,因为PHP json_decode()不喜欢这样:{“quantity”:“1”,“text”:“test”}这是胡说八道,当然
json_decode
理解有效的json:@FelixKling,当我在服务器上收到上面的json时,数据看起来是这样的:
{quantity:1,text:“test”}
在json_decode之后,我得到了一个混乱:
stdClass对象([],1,[]))
我错过了什么?问题可能是我在某个地方失去了引号,所以我的有效json将不再有效。我使用Sencha
Ext.Ajax.request({
通过CodeIgniter的
$json=$this->input->post('json');
OP想要一个包含两个对象的数组(我知道!不要问我为什么)@FelixKling这是一个非常糟糕的数据结构,你必须猜测(或试图找到)键:/我的问题与json格式无关,但是这篇文章回答了最初的问题。谢谢。OP想要一个包含两个对象的数组(我知道!别问我为什么)。@FelixKling这是一个非常糟糕的数据结构,你必须猜测(或尝试查找)键:/i我的问题与json格式无关,但是这篇文章回答了最初的问题。谢谢。