【发布时间】:2011-09-04 12:44:08
【问题描述】:
我从 Java 服务返回以下 JSON
{"Test":{
"value": 1,
"message": "This is a test"
}}
我有以下 C# 类
class Test {
public int value { get; set; }
public String message { get; set; }
}
但是,因为返回了根标签“Test”,所以我不能直接反序列化它
Test deserializedTest = JsonConvert.DeserializeObject<Test>(jsonString);
我发现我必须将 Test 类包装在另一个类中才能正常工作。除了
之外,有没有一种简单的方法可以避免这种情况?JToken root = JObject.Parse(jsonString);
JToken testToken = root["Test"];
Test deserializedTest = JsonConvert.DeserializeObject<Test>(testToken.toString());
最后我有第二个问题。我调用的大多数服务也可以返回一个异常对象。我想我会阅读 JSON 的“根”标签来确定如何反序列化对象。如何获取第一个根标记和/或是否有更好、更优雅的方法来处理服务异常?
谢谢
【问题讨论】:
标签: c# serialization json.net