我想将Json响应转换为C#对象。我的代码如下。Json响应C#对象
$ HttpResponseMessage response = client.GetAsync(TARGETURL).Result;
HttpContent content = response.Content;
// ... Check Status Code
Console.WriteLine("Response StatusCode: " + (int)response.StatusCode);
// ... Read the string.
string result = content.ReadAsStringAsync().Result;
Environment myJsonResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<Environment>(result);
Console.Write(myJsonResponse.id);
我的JSON对象类是:
public class Environment
{
public string id { get; set; }
public string url { get; set; }
public string name { get; set; }
public string error { get; set; }
public int container_hosts_count { get; set; }
}
结果字符串是:
"[{\"id\":\"23745576\",\"url\":\"https://cloud.mycloud.com/configurations/23745576\",\"name\":\"mycloud Code Screen - Andy Pande\",\"error\":\"\",\"container_hosts_count\":0}]"
我得到一个错误:
Newtonsoft.Json.JsonSerializationException occurred
HResult=0x80131500
Message=Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Environment' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '', line 1, position 1.
你传入一个数组而不是一个对象(见第一个字符是'''不是''''。 – Dai
您的JSON由一个只有一个项目的'Environment'数组组成。简单地解析为'Newtonsoft.Json.JsonConverter.DeserializeObject <列表>(结果);' –
nbokmans