Javascript 使用Angularjs或Jquery重新构造Json

Javascript 使用Angularjs或Jquery重新构造Json,javascript,jquery,Javascript,Jquery,使用Angularjs或Jquery重构Json的最佳方式是什么 我得到的json格式如下 [ { "address":"balh", "lat":123, "long":456 }, { "address":"balh", "lat":321, "long":543 }, { "address":"balh", "lat":432, "long":333 }, {

使用Angularjs或Jquery重构Json的最佳方式是什么

我得到的json格式如下

    [
  {
     "address":"balh",
     "lat":123,
     "long":456
  },
  {
     "address":"balh",
     "lat":321,
     "long":543
  },
  {
     "address":"balh",
     "lat":432,
     "long":333
  },
  {
     "address":"balh",
     "lat":123,
     "long":456
  },
  {
     "address":"balh",
     "lat":321,
     "long":543
  },
  {
     "address":"balh",
     "lat":432,
     "long":333
  }
]
我需要的格式是将它分成三组,如下所示

    {
   "1":[
      {
         "address":"balh",
         "lat":123,
         "long":456
      },
      {
         "address":"balh",
         "lat":321,
         "long":543
      },
      {
         "address":"balh",
         "lat":432,
         "long":333
      }
   ],
   "2":[
      {
         "address":"balh",
         "lat":123,
         "long":456
      },
      {
         "address":"balh",
         "lat":321,
         "long":543
      },
      {
         "address":"balh",
         "lat":432,
         "long":333
      }
   ]
}

对我来说,这更像是一个简单的JavaScript问题

下面的代码应该将您的数组分解成一个数组字典,每个数组包含三个(或更少)对象:

var yourArray = [/*whatever it is in here*/];

var output = {};

for(var i = 0, c = 1, current = null; i < yourArray.length; i++) {
    if(i % 3 == 0) {
        output[c++] = current = [];
    }
    current.push(yourArray[i]);
}
var yourArray=[/*不管它在这里是什么*/];
var输出={};
for(var i=0,c=1,current=null;i

您的输入JSON实际上不是有效的JSON:最外层的
{
}
应该是
[
]
,因为它是一个数组。假设您纠正了这一点,您不会重新构造JSON字符串,而是解析它,然后操纵结果对象以创建具有所需结构的新对象(如果需要,您可以将其序列化回JSON字符串)。啊。。现在修好了。。谢谢…谢谢nnnnnn,我想你没有看Angularjs。。使用直接json绑定和ng repeat是有原因的。我不明白你说的AngularJS是什么意思。我的观点是,JSON始终是一个字符串,而通过字符串操作来更改格式既笨拙又乏味。“正确”的解决方案是解析JSON,以便处理对象。如果您的输入已经是一个对象而不是字符串,那么它就不是JSON。谢谢。。你完全正确。。我的意思是AngularJS框架完成所有json解析和迭代。。我只是想使用这个框架,因为它提供了我需要映射的格式。。