繁体   English   中英

忽略Json .Net的自定义孩子

[英]Ignore custom children with Json .Net

我有一个像这样的json响应:

{"response_values":[110,{"id":14753,"name":"piter"},{"id":14753,"name":"rabbit"}]}

我有一堂简单的课

public class Class1
{
    [JsonProperty("id")]
    public int Id { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }
}

当我尝试使用此方法将json转换为对象列表时:

public T Cast<T>(string json)
{
    var result = default(T);

    var jsonObject = JObject.Parse(json);
    if (jsonObject != null)
    {
        var responseToken = jsonObject["response"];
        result = responseToken.ToObject<T>();
    }

    return result;
}

像这样

...

var jsonString = GetJson();
var items = Cast<List<Class1>>();

...

我很兴奋,因为值“ 110”是整数。 我如何跳过此值?

如果希望忽略的值始终位于开头,则始终使用此选项:

if (jsonObject != null)
{
    var responseToken = parsed["response_values"].SkipWhile(j => j.Type != JTokenType.Object);
    if (responseToken.Count() > 0) result = responseToken.ToObject<T>();
}

如果它始终是第一个值,则您可能更喜欢使用Skip(1)而不是SkipWhile 或者,您可以使用Where位置”忽略或选择消息中任何位置的标记。

当然,您可以根据成功情况下期望返回的结果来尝试这种方法(更改事物)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM