【发布时间】:2015-11-10 14:14:54
【问题描述】:
我有 JSON 数据:
var decodedJson =
"{{
"user": {
"userId": "sid:C4F4E93856104F078A11FE95892F0158"
},
"authenticationToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmdWxscm93IjoiYWxsIiwiRGJnMiI6ImxvZ2luIiwidmVyIjoiMyIsInVpZCI6InNpZDpDNEY0RTkzODU2MTA0RjA3OEExMUZFOTU4OTJGMDE1OCIsImlzcyI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwiYXVkIjoidXJuOm1pY3Jvc29mdDp3aW5kb3dzLWF6dXJlOnp1bW8iLCJleHAiOjE0NDk3NTYzNzIsIm5iZiI6MTQ0NzE2NDM3Mn0.kc-0O_aorfTw9l9U6yY6wyVtQnckqNBJikBzxAcJZ_U"
}}";
然后我想使用 JSON.NET 动态反序列化它:
var result = JsonConvert.DeserializeObject<dynamic>(decodedJson);
然后我希望像这样提取 UserId 和 Token:
string userId = result.user.userId;
string userToken = result.authenticationToken;
但它是在说
“未知成员用户/ authenticationToken”
有什么想法吗?
更新:
我复制了错误的json数据,实际上应该是这样的:
{\"user\":{\"userId\":\"sid:C4F4E93856104F078A11FE95892F0158\"},\"authenticationToken\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmdWxscm93IjoiYWxsIiwiRGJnMiI6ImxvZ2luIiwidmVyIjoiMyIsInVpZCI6InNpZDpDNEY0RTkzODU2MTA0RjA3OEExMUZFOTU4OTJGMDE1OCIsImlzcyI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwiYXVkIjoidXJuOm1pY3Jvc29mdDp3aW5kb3dzLWF6dXJlOnp1bW8iLCJleHAiOjE0NDk3NjE1NDEsIm5iZiI6MTQ0NzE2OTU0MX0.oVH8R2134UQQDpXfzPv2mmrj7M05w2mzWtbp70i7GEU\"}
【问题讨论】:
-
既然知道JSON结构,就不能序列化成标准类型吗?
-
@ArghyaC:json 数据将来可能会发生变化。无论如何,我已经从 Microsoft Azure API azure.microsoft.com/en-gb/documentation/articles/… 遵循了这个代码示例
-
您是否尝试过删除开头的
{并关闭},您有2 个开头和结尾,这在JSON 中是非法的。你也可以试试这个stackoverflow.com/a/8972079/2096538 -
对不起,我复制了错误的json数据,刚刚更新了问题
标签: c# json json.net azure-api-apps