我有这个json字符串,变成了一个Javascript对象,在其中一个级别返回类似这样的东西
"link": {
"#tail": "\n\n\t\t",
"#text": "http://static2.server.com/file.mp3"
},
我需要在Javascript上获取“text”的值,但“#”符号使其无法访问它。
我试过像这样清理字符串:
var myJSONString = JSON.stringify(response);
var myEscapedJSONString = myJSONString.replace(/[^\u0000-\u007F]+/g, "").replace("#","t");
但即使在使用stringify将其转换为字符串后,它也不会清除“关键”部分。
答案 0 :(得分:0)
在使用对象之前剥离#
怎么样?
function stripHashes(obj) {
var strippedObj = {};
Object.keys(obj).forEach(function(key) {
strippedObj[key.substr(1)] = link[key];
});
return strippedObj;
}
这将返回一个新对象,其中的哈希值从输入对象的键中剥离。
答案 1 :(得分:0)
我认为#被用作密钥没有任何问题。任何有效的字符串都可以用作对象键。但是如果你真的想要删除使用字符串,你可以使用正则表达式替换它(假设只在每个键的开头使用哈希字符);
const cleanObj = JSON.parse(JSON.stringify(response).replace(/\"#/gm,'"'))
console.log(cleanObj.link.text);
我也无法通过javascript访问和清理任何问题
var cleanObject = { link: {} };
Object.keys(response.link).map(function(key) {
cleanObject.link[key.substring(1)] = response.link[key];
})