Tôi đang phân tích chuỗi JSON bằng NewtonSoft JObject. Làm cách nào để nhận các giá trị từ một đối tượng động theo lập trình? Tôi muốn đơn giản hóa mã để không lặp lại bản thân mình cho mọi đối tượng.Cách lấy thuộc tính từ JObject động lập trình
public ExampleObject GetExampleObject(string jsonString)
{
ExampleObject returnObject = new ExampleObject();
dynamic dynamicResult = JObject.Parse(jsonString);
if (!ReferenceEquals(dynamicResult.album, null))
{
//code block to extract to another method if possible
returnObject.Id = dynamicResult.album.id;
returnObject.Name = dynamicResult.album.name;
returnObject.Description = dynamicResult.albumsdescription;
//etc..
}
else if(!ReferenceEquals(dynamicResult.photo, null))
{
//duplicated here
returnObject.Id = dynamicResult.photo.id;
returnObject.Name = dynamicResult.photo.name;
returnObject.Description = dynamicResult.photo.description;
//etc..
}
else if..
//etc..
return returnObject;
}
Có cách nào tôi có thể trích xuất các khối mã trong "nếu" báo cáo đến một phương pháp riêng biệt ví dụ:
private void ExampleObject GetExampleObject([string of desired type goes here? album/photo/etc])
{
ExampleObject returnObject = new ExampleObject();
returnObject.Id = dynamicResult.[something goes here?].id;
returnObject.Name = dynamicResult.[something goes here?].name;
//etc..
return returnObject;
}
Là nó thậm chí có thể vì chúng ta không thể sử dụng phản ánh các đối tượng năng động . Hoặc tôi thậm chí sử dụng JObject một cách chính xác?
Cảm ơn.
Là jsonString một chuỗi đó là dưới sự kiểm soát của bạn? Hay bạn nhận được điều này từ một bên khác và bạn cần liên lạc với nó? – MichaelD
@MichaelD là từ một bên khác. Tôi chỉ nhận và phân tích cú pháp. – dcdroid
Câu trả lời khác xem [deserializing JSON thành đối tượng .net sử dụng NewtonSoft (hoặc linq to json có thể?)] (Http://stackoverflow.com/q/4749639) –