Tôi có JSON sau khi trở về từ một dịch vụ JavaJSON.NET gốc Tag và Deserialization
{"Test":{
"value": 1,
"message": "This is a test"
}}
Tôi đã sau C# lớp
class Test {
public int value { get; set; }
public String message { get; set; }
}
Tuy nhiên, do thẻ gốc "Test" là đã trả lại Tôi không thể trực tiếp deserialize điều này với
Test deserializedTest = JsonConvert.DeserializeObject<Test>(jsonString);
Tôi thấy tôi phải quấn lớp Kiểm tra bên trong lớp khác lớp để làm việc này. Có cách nào dễ dàng để tránh điều này ngoài cách khác là
JToken root = JObject.Parse(jsonString);
JToken testToken = root["Test"];
Test deserializedTest = JsonConvert.DeserializeObject<Test>(testToken.toString());
Cuối cùng tôi có câu hỏi thứ hai. Hầu hết các dịch vụ tôi gọi đều có thể trả về một đối tượng ngoại lệ. Tôi figured tôi đã đọc thẻ "root" của JSON để xác định làm thế nào để deserialize đối tượng. Làm cách nào để nhận thẻ gốc đầu tiên và/hoặc có phương thức tốt hơn, thanh lịch hơn để xử lý các ngoại lệ từ một dịch vụ không?
Cảm ơn
Tôi nghĩ rằng điều này thực sự có thể làm việc tốt nếu tôi làm cho nó đối tượng chung chung (đối tượng thử nghiệm). Đây là một cách rất đơn giản để phân tích cú pháp một hoặc các đối tượng khác. Cảm ơn bạn – Shaun