我通过该网站进行了搜索,但它仍然无法正常工作。
var blah2 = JSON.stringify({foo: 123, bar: <x><y></y></x>, baz: 123});
这是我尝试过的:
blah2.replace(/[{}]/g, "");
这就是字符串的结果:
got "{\"baz\":123,\"foo\":123}"
(我知道这可能是一个新手问题,但这是我第一次使用 javascript,我只是不知道我错过了什么)
我通过该网站进行了搜索,但它仍然无法正常工作。
var blah2 = JSON.stringify({foo: 123, bar: <x><y></y></x>, baz: 123});
这是我尝试过的:
blah2.replace(/[{}]/g, "");
这就是字符串的结果:
got "{\"baz\":123,\"foo\":123}"
(我知道这可能是一个新手问题,但这是我第一次使用 javascript,我只是不知道我错过了什么)
Javascript 字符串是不可变的。当你打电话时blah2.replace
,你不是在替换里面的东西blah2
,你是在创建一个新的字符串。你可能想要的是:
blah2 = blah2.replace(/[{}]/g, '');
因为我要用逗号分割它,所以它变成一个数组,所以当我对它进行排序时,我不想根据 { 和 } 对其进行排序
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]);
}