C# Json序列化修改类名
时间: 2024-12-08 16:19:57 浏览: 19
在C#中,当你需要将一个类的对象转换成JSON字符串并发送到服务器,或者从JSON字符串反序列化回对象时,通常会使用`System.Text.Json`命名空间下的`JsonSerializer`类。如果你需要更改序列化或反序列化的类名,这通常是通过设置`JsonPropertyName`属性来完成的。
例如,假设你有一个名为`OldClass`的类,但是在JSON中应该显示为`NewClassName`,你可以这样做:
```csharp
public class OldClass
{
[JsonPropertyName("NewClassName")]
public string Field1 { get; set; }
// 其他字段...
}
// 序列化
var json = JsonSerializer.Serialize(oldObject, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCasePropertyNames });
// 反序列化
string jsonString = "{\"NewClassName\":\"value1\"}";
var oldObject = JsonSerializer.Deserialize<OldClass>(jsonString);
```
在这个例子中,`JsonPropertyName`属性告诉JSON序列化器你在JSON中使用的名称与类中定义的字段名不一致。请注意,如果有多個字段需要改变,你需要对每个相关的字段都应用这个属性。
阅读全文