[英]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.