如何反序列化特定 Json
How to deserialize specific Json
大家好,我尝试反序列化一个 json,但结果为空,可能很简单,但我现在无法解决,我尝试使用这种形式,我使用 Newtonsoft
if (response.Content.Contains("error"))
{
JObject jObject = JObject.Parse(response.Content);
dynamic x = JsonConvert.DeserializeObject<Error>(response.Content);
error = JsonConvert.DeserializeObject<Error>(response.Content);
JArray recibos = (JArray)jObject["error"];
return error;
}
这是 json 我的 response.content
"{\"error\":{\"code\":-10,\"message\":{\"lang\":\"en-us\",\"value\":\"The warehouse is not defined for the item. [OWOR.Warehouse]\"}}}"
和我的class
public class Error
{
public int code { get; set; }
public Message message { get; set; }
public class Message
{
public string lang { get; set; }
public string value { get; set; }
}
}
试试这个
if (response.Content != null)
{ {
Data data = JsonConvert.DeserializeObject<Data>(response.Content);
}
并添加 class 数据(您可以更改名称)
public class Data
{
public Error error {get; set;}
}
您的 Model
class 不正确,您试图 de-serialize 您的 JSON
字符串。将您的 Model
classes 更改为:
public class Message
{
public string lang { get; set; }
public string value { get; set; }
}
public class Error
{
public int code { get; set; }
public Message message { get; set; }
}
public class Root
{
public Error error { get; set; }
}
你的 de-serialization 将是:
if(string.IsNotNullOrEmpty(response.Content)
{
if (response.Content.Contains("error"))
{
var error = JsonConvert.DeserializeObject<Root>(response.Content);
return error;
}
}
您的 error
变量将包含反序列化结果的内容,您可以访问所需的数据。
使用 JSON
字符串的示例:https://dotnetfiddle.net/NZuwtl
大家好,我尝试反序列化一个 json,但结果为空,可能很简单,但我现在无法解决,我尝试使用这种形式,我使用 Newtonsoft
if (response.Content.Contains("error"))
{
JObject jObject = JObject.Parse(response.Content);
dynamic x = JsonConvert.DeserializeObject<Error>(response.Content);
error = JsonConvert.DeserializeObject<Error>(response.Content);
JArray recibos = (JArray)jObject["error"];
return error;
}
这是 json 我的 response.content
"{\"error\":{\"code\":-10,\"message\":{\"lang\":\"en-us\",\"value\":\"The warehouse is not defined for the item. [OWOR.Warehouse]\"}}}"
和我的class
public class Error
{
public int code { get; set; }
public Message message { get; set; }
public class Message
{
public string lang { get; set; }
public string value { get; set; }
}
}
试试这个
if (response.Content != null)
{ {
Data data = JsonConvert.DeserializeObject<Data>(response.Content);
}
并添加 class 数据(您可以更改名称)
public class Data
{
public Error error {get; set;}
}
您的 Model
class 不正确,您试图 de-serialize 您的 JSON
字符串。将您的 Model
classes 更改为:
public class Message
{
public string lang { get; set; }
public string value { get; set; }
}
public class Error
{
public int code { get; set; }
public Message message { get; set; }
}
public class Root
{
public Error error { get; set; }
}
你的 de-serialization 将是:
if(string.IsNotNullOrEmpty(response.Content)
{
if (response.Content.Contains("error"))
{
var error = JsonConvert.DeserializeObject<Root>(response.Content);
return error;
}
}
您的 error
变量将包含反序列化结果的内容,您可以访问所需的数据。
使用 JSON
字符串的示例:https://dotnetfiddle.net/NZuwtl