我有一个取自第三方API的JSON字符串。但是,我们不知道该第三方API的确切JSON定义,它有很多属性,我们只知道他们有我们需要的信息
下面是一个示例
{
"exp": 1670979934,
"iat": 1670979634,
"auth_time": 1670979634,
"jti": "86a4610c-9e9a-473f-9cc0-0959aa779702",
"iss": "http://localhost:8080/auth/realms/ScopicSoftware",
"aud": "account",
"sub": "2874bbca-e34b-44f0-8ca7-cfc57708a124",
"typ": "Bearer",
"azp": "keycloakdemo",
"realm_access": {
"roles": [
"default-roles-scopicsoftware",
"offline_access",
"uma_authorization"
]
},
"resource_access": {
"keycloakdemo": {
"roles": [
"admin"
]
},
"account": {
"roles": [
"manage-account",
"manage-account-links",
"view-profile"
]
}
}
...
...
}
正如我所说的,除了输出之外,我们不拥有JSON的确切信息,所以我们不能只执行Json.Deserialize并将模型对象传递给它。(或者我们可以基于有限的信息吗?)
我们希望访问“resource_access”-〉“keycloak_demo”和“roles”数组
我尝试使用C#中的动态类型
dynamic dataX = Json.Decode(responseString);
我可以通过
var demo = dataX.resource_access.keycloakdemo;
它返回一个DynamicJsonArray类型的变量,但是,我不能使用普通的for循环或Enumerator迭代它,它崩溃了。
那么,如果我们没有模型定义,那么正确的方法是什么呢?
1条答案
按热度按时间zc0qhyus1#
你可以用这样的代码