Node.js 如何读取带有 HTTP 地址元素的 JSON
Posted
技术标签:
【中文标题】Node.js 如何读取带有 HTTP 地址元素的 JSON【英文标题】:Node.js how do you read a JSON with an element that is a HTTP address 【发布时间】:2017-11-11 15:49:05 【问题描述】:好的,我刚刚遇到了一个问题。我正在使用 Auth0 在应用程序元数据中创建具有不同权限(不仅仅是权限范围)的用户。当我解码令牌时,我得到了这个 json:
"iss": "https://testing.auth0.com/",
"sub": "auth0|58e7bae154941844b507eaf5",
"aud": "OSBkLd832tIhpDe0QFJbQ9vutgB2s6cJ",
"exp": 1497016797,
"iat": 1496980797,
"https://thetestgroup.com/app_metadata":
"is_admin": true
如您所见,应用元数据位于元素“https://thetestgroup.com/app_metadata”中。通常我会在我的代码 (auth.payload.iat) 中执行类似的操作来获取 iat,但是对于 app_metadata,它会因为 :. 而拒绝它。有没有获取这些数据的好方法?
【问题讨论】:
auth.payload["https://thetestgroup.com/app_metadata"]
那行不通。我仍然只是取回了整个有效载荷而不是应用元数据
对不起,确实有效。出于某种原因,我的代码走错了路,所以它总是通过一切。感谢您的帮助
【参考方案1】:
好的,让我们谈谈 javascript (node) 和你的 json
Firefox Scratchpad (Shift-F4)
var x =
"iss": "https://testing.auth0.com/",
"sub": "auth0|58e7bae154941844b507eaf5",
"aud": "OSBkLd832tIhpDe0QFJbQ9vutgB2s6cJ",
"exp": 1497016797,
"iat": 1496980797,
"https://thetestgroup.com/app_metadata":
"is_admin": true
x['https://thetestgroup.com/app_metadata'].is_admin // hit run
/*
true
*/
node.js
~ $ node -v
v8.1.0
~ $ node
> var x =
... "iss": "https://testing.auth0.com/",
... "sub": "auth0|58e7bae154941844b507eaf5",
... "aud": "OSBkLd832tIhpDe0QFJbQ9vutgB2s6cJ",
... "exp": 1497016797,
... "iat": 1496980797,
... "https://thetestgroup.com/app_metadata":
..... "is_admin": true
.....
...
undefined
> x['https://thetestgroup.com/app_metadata'].is_admin
true
>
请提供mcve,因为纯 JS 和 JSON 非常乐意使用(奇怪的)键 - 如图所示。
【讨论】:
是的,你是对的。我能够获取数据我有一个不同的错误导致我没有获得正确的数据。感谢您的帮助以上是关于Node.js 如何读取带有 HTTP 地址元素的 JSON的主要内容,如果未能解决你的问题,请参考以下文章
Node.js 如何从角度 $http 调用 fs.close
如何使用 Node.JS 的 restify 框架解析/读取多个参数