想要从字符串中删除花括号

时间:2012-05-29 02:58:41

标签: javascript json

我在网站上搜索了一下,但它仍然没有用。

var blah2 = JSON.stringify({foo: 123, bar: <x><y></y></x>, baz: 123});

这是我试过的:

blah2.replace(/[{}]/g, "");

这就是字符串出来的地方:

got "{\"baz\":123,\"foo\":123}"

(我知道这可能是一个新问题,但这是我第一次使用javascript,我只是不知道我错过了什么)

2 个答案:

答案 0 :(得分:12)

Javascript字符串是不可变的。当您致电blah2.replace时,您没有替换blah2内的内容,而是创建了一个新字符串。你可能想要的是:

blah2 = blah2.replace(/[{}]/g, '');

答案 1 :(得分:0)

  

因为我要用逗号分割它所以它变成了一个   数组,所以当我对它进行排序时,我不想根据它进行排序   {和}

zi42已经给你正确答案了。

但是既然你已经如上所述写了,看起来你想要的就是对数据进行排序并将其拆分成数组;在这种情况下,解析/拆分它在逗号等,是一个很长的路要走。这是考虑它的另一种方式:

var data = {foo: 123, bar: <x><y></y></x>, baz: 123};
var key;
var dataSorted = []; // Create an empty array

for (key in data) {  // Iterate through each key of the JSON data
  dataSorted.push(key);
}

dataSorted.sort();

现在您已对数据进行了排序。当您想要使用它时,您可以像这样使用它:

for (var i = 0; i < dataSorted.length; i++) {
  var key = dataSorted[i];
  // Now you do whatever you need with sorted data. eg:
  console.log("Key is: " + key + ", value is: " + data[key]);
}