Tôi rất mới làm việc với JSON và đang xử lý sự trở lại từ một API mà tôi không thể thay đổi định dạng. Ví dụ về trả lại là: (url thực tế đã bị xóa)Deserializing JSON với mảng được lập chỉ mục trong C#
{
"body":
{
"link":
{"linkurl": ["www.google.com"]}
},
"error": null,
"message": "Data Retrieved successfully",
"status": true
}
Tôi đang sử dụng thư viện Newtonsoft.Json với MVC 3, trong VS2010.
lớp của tôi là:
[JsonObject(MemberSerialization.OptIn)]
public class LinksJSON
{
[JsonProperty]
public string link{ get; set; }
[JsonProperty]
public string message { get; set; }
[JsonProperty]
public string error { get; set; }
[JsonProperty]
public bool status { get; set; }
}
Tôi deserializing nó với:
private static T _download_serialized_json_data<T>(string url) where T : new()
{
using (var w = new WebClient())
{
var json_data = string.Empty;
// attempt to download JSON data as a string
try
{
json_data = w.DownloadString(url);
}
catch (Exception) { }
// if string with JSON data is not empty, deserialize it to class and return its instance
return !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject<T>(json_data) : new T();
}
}
public string CheckJSONLink()
{
var url = "<api url-removed for security>";
var outObj = _download_serialized_json_data<LinksJSON>(url);
return outObj.Link;
}
Tuy nhiên tôi đang cố gắng để có được giá trị của linkurl
, đó là một mảng được lập chỉ mục trong vòng Link
.
Tôi làm cách nào để truy cập thông tin này?
btw, tôi có thể truy cập vào tất cả các lĩnh vực khác (lỗi, thông điệp và tình trạng không có vấn đề). – Crossems