root json.net Корневая тег и десериализация

У меня есть следующие JSON, возвращающиеся из службы Java

  {"Test":{
    "value": 1,
    "message": "This is a test"
  }}

У меня есть следующие класс C #

class Test {
    public int value { get; set; }
    public String message { get; set; }
}

, потому что корневой тег «тест» возвращается, я не могу напрямую десетировать это с

Test deserializedTest = JsonConvert.DeserializeObject<Test>(jsonString);

I Найдите, я должен обернуть тестовый класс внутри другого класса для этого для работы. Есть ли простой способ избежать этого, кроме

JToken root = JObject.Parse(jsonString);
JToken testToken = root["Test"];
Test deserializedTest = JsonConvert.DeserializeObject<Test>(testToken.toString());

, наконец, у меня есть второй вопрос. Большинство услуг, которые я звоню, может также вернуть объект исключения. Я подумал, что я прочитал тег «root» JSON, чтобы определить, как десертифицировать объект. Как мне получить первый корневой тег и / или есть лучший, более элегантный метод для обработки исключений из сервиса?

Спасибо

9
задан Shaun 4 September 2011 в 12:44
поделиться