C# 使用Json.Net忽略自定义子项

C# 使用Json.Net忽略自定义子项,c#,.net,json.net,C#,.net,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; se

我有一个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;
}
publictcast(字符串json)
{
var结果=默认值(T);
var jsonObject=JObject.Parse(json);
if(jsonObject!=null)
{
var responseToken=jsonObject[“response”];
结果=responseToken.ToObject();
}
返回结果;
}
像这样

var jsonString=GetJson();
var items=Cast();


我有一个例外,因为值“110”是整数。如何跳过此值?

如果希望忽略的值总是在开头,则始终可以使用此选项:

if (jsonObject != null)
{
    var responseToken = parsed["response_values"].SkipWhile(j => j.Type != JTokenType.Object);
    if (responseToken.Count() > 0) result = responseToken.ToObject<T>();
}
if(jsonObject!=null)
{
var responseToken=parsed[“response_values”].SkipWhile(j=>j.Type!=JTokenType.Object);
如果(responseToken.Count()>0)结果=responseToken.ToObject();
}
如果总是第一个值,您可能更喜欢使用
Skip(1)
而不是
SkipWhile
。或者,您可以使用
Where
忽略或选择消息中的任何标记

当然,您可以使用这种方法(更改内容),具体取决于您希望在成功场景中返回的内容。

代码中的“解析”是什么?在我的Visual Studio C#editor中,无法解决此问题。
if (jsonObject != null)
{
    var responseToken = parsed["response_values"].SkipWhile(j => j.Type != JTokenType.Object);
    if (responseToken.Count() > 0) result = responseToken.ToObject<T>();
}