我是json的新手,我在这里遇到一些问题,我无法解决。
在其他json中我有{"certificate":"123456789",}
并且我得到了使用的值。
model.cs
class Login //this code is working.
{
[JsonProperty("certificate")]
public string certificate { get; set; }
}
但我的问题是当我拿出json词典时我没有任何想法如何才能从中得到它的价值。
这是来自controller.cs的代码,用于从Saba / api / component / location获取json
using(var client = new HttpClient()) //I'm sure this code is working.
{
client.BaseAddress = new Uri(string.Format("https://{0}/", HostUrl));
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("SabaCertificate", certificate);
//HTTP GET: /Saba/api/componet/location
HttpResponseMessage response = await client.GetAsync("Saba/api/component/location");
if(response.IsSuccessStatusCode)
{
Location saba = await response.Content.ReadAsAsync<Location>();
//I always get empty location when I try to run the app.
}
}
这是带字典的JSON。
{
"results": [
{
"loc_name": "Aberdeen - Aberdeen Town Square_489",
"id": "locat000000000001877",
"href": "https://na1.sabacloud.com/Saba/api/component/location/locat000000000001877"
}]
}
如何获取json字典的值?
我尝试的是
Model.cs
[JsonProperty("results")] \\ AggregateException Error
class Location
{
[JsonProperty("loc_name")]
public string loc_name { get; set; }
[JsonProperty("id")]
public string id { get; set; }
[JsonProperty("href")]
public string href { get; set; }
}
但我无法检索该值。
答案 0 :(得分:0)
根据您问题中发布的JSON,您应该有类似
的内容public class Result
{
public string loc_name { get; set; }
public string id { get; set; }
public string href { get; set; }
}
public class RootObject
{
public List<Result> results { get; set; }
}
然后打电话
var rootObject = JsonConvert.DeserializeObject<RootObject>(jsonData);
您始终可以使用JSON Formatter & Validator来测试您的JSON是否有效,并json2csharp从json生成c#类。