У меня есть JSON данные:JSON.NET десериализовать динамический объект
var decodedJson =
"{{
"user": {
"userId": "sid:C4F4E93856104F078A11FE95892F0158"
},
"authenticationToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmdWxscm93IjoiYWxsIiwiRGJnMiI6ImxvZ2luIiwidmVyIjoiMyIsInVpZCI6InNpZDpDNEY0RTkzODU2MTA0RjA3OEExMUZFOTU4OTJGMDE1OCIsImlzcyI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwiYXVkIjoidXJuOm1pY3Jvc29mdDp3aW5kb3dzLWF6dXJlOnp1bW8iLCJleHAiOjE0NDk3NTYzNzIsIm5iZiI6MTQ0NzE2NDM3Mn0.kc-0O_aorfTw9l9U6yY6wyVtQnckqNBJikBzxAcJZ_U"
}}";
Тогда я хочу десериализации динамически с помощью Json.NET:
var result = JsonConvert.DeserializeObject<dynamic>(decodedJson);
Тогда я ожидаю, чтобы извлечь UserId и токен как это:
string userId = result.user.userId;
string userToken = result.authenticationToken;
Но это говорит
"Неизвестный пользователь член/authenticationToken"
Любые идеи?
ОБНОВЛЕНО:
Я скопировал неправильные данные JSON, это на самом деле должно быть так:
{\"user\":{\"userId\":\"sid:C4F4E93856104F078A11FE95892F0158\"},\"authenticationToken\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmdWxscm93IjoiYWxsIiwiRGJnMiI6ImxvZ2luIiwidmVyIjoiMyIsInVpZCI6InNpZDpDNEY0RTkzODU2MTA0RjA3OEExMUZFOTU4OTJGMDE1OCIsImlzcyI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwiYXVkIjoidXJuOm1pY3Jvc29mdDp3aW5kb3dzLWF6dXJlOnp1bW8iLCJleHAiOjE0NDk3NjE1NDEsIm5iZiI6MTQ0NzE2OTU0MX0.oVH8R2134UQQDpXfzPv2mmrj7M05w2mzWtbp70i7GEU\"}
Поскольку вы знаете структуру JSON, может не ваша сериализация к стандартному типу? –
@ArghyaC: данные jSon могут измениться в будущем. В любом случае, я выполнил этот образец кода из API Microsoft Azure https://azure.microsoft.com/en-gb/documentation/articles/app-service-api-dotnet-consume/ –
Вы пытались удалить открывающиеся '{' и закрытие '}', у вас есть 2 в начале и в конце, и это незаконно в JSON. Вы также можете попробовать этот http: // stackoverflow.com/a/8972079/2096538 –