无法在 c# 中访问 jObject 令牌
Posted
技术标签:
【中文标题】无法在 c# 中访问 jObject 令牌【英文标题】:Cannot access a jObject token in c# 【发布时间】:2021-05-14 10:19:43 【问题描述】:我有以下名为“originalJson”的 json
"user_active": true,
"user_firstname": "Bob",
"user_lastname": "Tester",
"user_displayname": "Bobby",
"user_primary_email": "bob@tester.com",
"user_login_enabled": true,
"user_profile":
"user_locale": "en-gb",
"user_lang": "en-gb"
,
"user_identities": [],
"user_roles": [
"app_id": "74a019c9-7171-4af0-a773-3984edaa35ca",
"context_uuid": "74a019c9-7171-4af0-a773-3984edaa35ca",
"context_type": "context_application",
"role_oid": "test_role_a",
"role_start_date": "2020-06-27T13:00:00Z",
"role_end_date": "2021-06-27T13:00:00Z"
]
我正在尝试替换 role_start_date 和 role_end_date 值。
我已经尝试了以下
JObject jObj = JObject.Parse(originalJson);
jObj["user_roles"]["role_start_date"] = somenewstartDate;
jObj["user_roles"]["role_end_date"] = somenewendDate;
但是它失败了并且不喜欢“jObj[”user_roles”][“role_start_date”]”。我以为这很简单,我一定是错过了什么。
有什么想法吗?
【问题讨论】:
"user_roles"
是一个对象数组,jObj["user_roles"][0]["role_start_date"] = somenewstartDate;
也是如此
太好了,答案如此之快,非常感谢。非常感谢。
【参考方案1】:
属性"user_roles"
是一个对象数组,而不是单个对象。您正在尝试在该数组的第一个条目中设置属性值,因此您需要这样做:
jObj["user_roles"][0]["role_start_date"] = somenewstartDate;
jObj["user_roles"][0]["role_end_date"] = somenewendDate;
【讨论】:
以上是关于无法在 c# 中访问 jObject 令牌的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JArray 的所有元素添加到 C# 中的 JObject?
无法根据访问令牌对用户进行身份验证 - MS Graph API C#