如何在JSON中转义逗号以供高图读取

时间:2016-03-22 15:50:59

标签: javascript jquery json

我有以下JSON,我想在数字之间添加逗号,但是当我这样做时,JSON失败了。我的代码版本的代码可以在下面的小提琴链接中看到

FIDDLE 我想将此11488897更改为11,488,897

这可能吗?怎么办呢?

感谢您的帮助

^         # start
\w*?      # Match 0 or more word characters (non-greedy)
[a-zA-Z]  # Match an English alphabet 
\w*       # Match 0 or more word characters
$         # end

3 个答案:

答案 0 :(得分:3)

如果你想保留逗号,你只需要使用字符串:

"data": ["48,353,330","38,079,817","37,130,929","1,957,317"]

这是不是一个好主意是另一个故事。通常,您希望服务器返回的JSON包含原始(即整数)数据,然后在您实际使用时将其格式化。这样,可以使用相同的RPC端点来获取数据,以便在图表 中使用,以用于以后可能出现的任何其他目的。

答案 1 :(得分:1)

试试这个:

var data = [{
    "name": "",
    "data": ["Totals","Total1 ","Total 2","total 3" ]
}, {
    "name": "Amount1",
    "data": [48353330,38079817,37130929,1957317]
}, {
    "name": "Amount2",
    "data": [11488897,8902674,8814629,497369]
}];

data.forEach(function(obj) {
  obj.data = obj.data.map(function(item) {
    if (typeof item == 'number') {
      return item.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    } else {
      return item;
    }
  });
});
alert(JSON.stringify(data, true, 4));

答案 2 :(得分:1)

我不知道它是否是跨浏览器但如果你这样做

var number = 11488897;
number = number.toLocaleString('en');

您将在小数点上使用逗号获取数字(字符串)