解析属性键中带有特殊字符的JSON对象
问题描述:
我有一个看起来像这样的JSON文件
I have a JSON file that looks something like this
{
"samlp:Response": {
"@attributes": {
"xmlns:samlp": "urn:oasis:names:tc:SAML:2.0:protocol",
"ID": "_482d7b9c-3e50-47cb-aa64-4e3655352c64",
"Version": "2.0",
"IssueInstant": "2019-06-27T17:02:47.711Z",
"Destination": "https://jjds-sunrise--cqsupport--c.cs102.visual.force.com/apex/ResponseReceiver",
"InResponseTo": "Azure_9849028456"
}
}
}
尝试使用常规方式(例如,
While trying to parse this JSON using the normal way i.e.
jsonObject.samlp:Response.@attributes.ID
其中jsonObject是我为此JSON创建的对象.我收到一条错误消息
where jsonObject is the object I created for this JSON. I am getting an error that says
意外令牌:"
"unexpected token :"
.我做错了吗?还是有其他解析方法?
. Am I doing it wrong or is there other way to parse this?
答
Take a look at Property Accessors. Consider the following:
const jsonObject = {
"samlp:Response": {
"@attributes": {
"xmlns:samlp": "urn:oasis:names:tc:SAML:2.0:protocol",
"ID": "_482d7b9c-3e50-47cb-aa64-4e3655352c64",
"Version": "2.0",
"IssueInstant": "2019-06-27T17:02:47.711Z",
"Destination": "https://jjds-sunrise--cqsupport--c.cs102.visual.force.com/apex/ResponseReceiver",
"InResponseTo": "Azure_9849028456"
}
}
};
console.log(jsonObject["samlp:Response"]["@attributes"].ID);