javascript中的数组格式化

javascript中的数组格式化,javascript,arrays,json,Javascript,Arrays,Json,我有一个类似这样的json数组 var data= [ { "id": 24, "title": "BCOM", "start": "2014-08-05 12:59:00 PM", "end": "2014-08-05 2:59:00 PM", "description": "mcom", "DIFF": 120 }, { "id": 26, "title": "MCOM", "start": "2014-0

我有一个类似这样的json数组

 var data= [
  {
    "id": 24,
    "title": "BCOM",
    "start": "2014-08-05 12:59:00 PM",
    "end": "2014-08-05 2:59:00 PM",
    "description": "mcom",
    "DIFF": 120
  },
  {
    "id": 26,
    "title": "MCOM",
    "start": "2014-08-10 12:59:00 PM",
    "end": "2014-08-10 4:59:00 PM",
    "description": "mcom",
    "DIFF": 240
  },
  {
    "id": 29,
    "title": "MCOM",
    "start": "2014-08-11 12:59:00 PM",
    "end": "2014-08-11 8:59:00 PM",
    "description": "mcom",
    "DIFF": 480
  },
  {
    "id": 30,
    "title": "MCOM",
    "start": "2014-08-13 12:59:00 PM",
    "end": "2014-08-13 4:59:00 PM",
    "description": "mcom",
    "DIFF": 240
  }
]
我想让这个数组具有不带双引号的索引,并通过使用javascript数组函数更改一些索引名和一些其他修改

请在这方面帮助我,谢谢你做一些谷歌搜索;-)这会有帮助的

var data = '{ "name": "John Smith" }';       //Let's say you got this
data = data.replace(/\"([^(\")"]+)\":/g,"$1:");  //This will remove all the quotes
data;                                         //'{ name: "John Smith" }'
希望能有帮助

在javascript中,带引号的索引(
{“title”:“asdf”}
)与不带引号的索引(
{title:“asdf”}
)是等效的,只是您可以在带引号的版本中使用更多的符号,如空格、括号或关键字

此外,在JSON中,必须在索引周围添加引号,否则它不是有效的JSON

关于修改,您可以使用
Array.prototype.map()
来完成此操作

var newData = data.map(function (el) {
    return {
        id: el.id,
        title: el.title,
        y: el.DIFF
    };
});

console.log(newData);

为此使用数组
map
函数

var result = data.map(function (obj) {
    return {id:obj.id,title:obj.title,y:obj.DIFF};
})

console.log(result);
我假设结果中应该有
BCOM
作为
title
id
,24。这是一种类型,在那里它被写为
MCOM


我认为什么对钥匙不重要。

你试过什么吗?你面临的问题是什么?这似乎很简单!一种简单的方法是将JSON转换为数组,遍历它,并使用
DIFF
delete
其他属性的值分配一个新属性
y
!您可以使用
Array.prototype.forEach()
并编写回调函数来进行修改。我认为第一个数据标题应该是
BCOM
,不是吗?事实上,问题是我必须将这些数据填充到高位图表上,所以我必须格式化数组,比如“id”到id,“title”到title,“diff”到y,我们如何在Javascript中做到这一点,如果对我来说没有什么意义的话。属性名称在JS中始终是字符串。如果要更改它们在源代码中的显示方式,请打开文本编辑器并删除引号。在运行时,是否使用引号没有任何区别。没有引号,它就不是有效的JSON。
var result = data.map(function (obj) {
    return {id:obj.id,title:obj.title,y:obj.DIFF};
})

console.log(result);