解析属性键中带有特殊字符的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);