簡體   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