C# 使用newtonsoft json反序列化时如何跳过特定属性?

C# 使用newtonsoft json反序列化时如何跳过特定属性?,c#,json,serialization,json.net,deserialization,C#,Json,Serialization,Json.net,Deserialization,我有一个API,它返回一个包含6000个对象的JSON数组。每个对象有大约40个属性,但我只需要使用大约20个。如何忽略某些属性? 这是我目前的代码: string json = await client.GetStringAsync(string.Format(url)); List<ListModelClass> ListOfStuff = JsonConvert.DeserializeObject<List<ListModelClass>>(JArray

我有一个API,它返回一个包含6000个对象的JSON数组。每个对象有大约40个属性,但我只需要使用大约20个。如何忽略某些属性? 这是我目前的代码:

string json = await client.GetStringAsync(string.Format(url));
List<ListModelClass> ListOfStuff = JsonConvert.DeserializeObject<List<ListModelClass>>(JArray.Parse(json).ToString());

public class ListModelClass {
    public string firstProperty { get; set; }
    public string secondProperty { get; set; }
    public string thirdProperty { get; set; }
    ... about 40 more 
}
string json=await client.GetStringAsync(string.Format(url));
List ListOfStuff=JsonConvert.DeserializeObject(JArray.Parse(json.ToString());
公共类ListModelClass{
公共字符串firstProperty{get;set;}
公共字符串secondProperty{get;set;}
公共字符串thirdProperty{get;set;}
…大约还有40多个
}

当且仅当模型类中存在同名的属性,或者您可以使用
[JsonProperty(PropertyName=“your_property_name”)]时,JSON对象中的属性才匹配。


因此,您只能包含要在模型类中使用的属性。

当且仅当模型类中存在同名属性时,JSON对象中的属性才匹配,或者您可以使用
[JsonProperty(PropertyName=“your_property_name”)]


因此,您只能在模型类中包含要使用的属性。

Newtonsoft.Json将尝试根据名称匹配属性。如果该属性在您的类中不存在,它将不会被添加。属性上的
ScriptIgnore
属性会起作用吗?@ZacFaragher我想是的,但我想知道它是否仍然进行比较。我正试图减少整个操作所需的时间。如果是这种情况,则需要修改源JSON响应本身。@ZacFaragher这是最好的情况,但不幸的是,这是不可能的。Newtonsoft.JSON将尝试根据名称匹配属性。如果该属性在您的类中不存在,它将不会被添加。属性上的
ScriptIgnore
属性会起作用吗?@ZacFaragher我想是的,但我想知道它是否仍然进行比较。我正试图减少整个操作所需的时间。如果是这种情况,则需要修改源JSON响应本身。@ZacFaragher这将是最好的情况,但不幸的是,这是不可能的。由于我无法更改API,您是否建议从ModelClass中删除变量?是的,这就是你可以做到的。因为,我不能改变我的API,你建议从ModelClass中删除变量吗?是的,这就是你可以做到的。