Newtonsoft.Json 序列化 排除指定字段或只序列化指定字段
时间: 2023-12-06 17:25:17 浏览: 29
在 Newtonsoft.Json 中,可以通过使用 JsonIgnore 属性来排除某个字段,或者使用 JsonProperty 属性来只序列化指定字段。
1. 排除指定字段
```csharp
public class MyClass
{
public int Id { get; set; }
[JsonIgnore]
public string Secret { get; set; }
public string Name { get; set; }
}
MyClass obj = new MyClass { Id = 1, Secret = "my secret", Name = "my name" };
string json = JsonConvert.SerializeObject(obj);
// Output: {"Id":1,"Name":"my name"}
```
在上面的示例中,将 Secret 字段标记为 JsonIgnore 属性,序列化时就会忽略这个字段。
2. 只序列化指定字段
```csharp
public class MyClass
{
public int Id { get; set; }
[JsonProperty]
public string Secret { get; set; }
[JsonProperty]
public string Name { get; set; }
}
MyClass obj = new MyClass { Id = 1, Secret = "my secret", Name = "my name" };
string json = JsonConvert.SerializeObject(obj);
// Output: {"Secret":"my secret","Name":"my name"}
```
在上面的示例中,将 Secret 和 Name 字段标记为 JsonProperty 属性,序列化时就只会序列化这两个字段。如果不标记任何属性,则默认序列化所有公共属性。