var result = serializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(json))) as string;改成复杂对象类型
时间: 2024-02-21 19:01:50 浏览: 120
通过JavaScriptSerializer将复杂json解析成对象
4星 · 用户满意度95%
如果将反序列化的对象类型改成复杂对象类型,需要按照以下步骤进行:
1. 创建一个 C# 类型,表示要反序列化的 JSON 对象;
2. 使用 DataContractJsonSerializer 类的构造函数创建一个新的实例,并将第一个参数设置为该类型;
3. 使用 ReadObject 方法将 JSON 字符串转换为该类型的实例。
下面是一个示例代码:
```csharp
[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
// 反序列化 JSON 字符串到 Person 对象
var serializer = new DataContractJsonSerializer(typeof(Person));
var json = "{\"Name\":\"Alice\", \"Age\":30}";
var result = serializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(json))) as Person;
Console.WriteLine($"Name: {result.Name}, Age: {result.Age}");
```
在上面的示例中,我们定义了一个名为 Person 的 C# 类型,并在该类型上使用了 DataContract 和 DataMember 特性,以告诉 DataContractJsonSerializer 如何将 JSON 字符串转换为该类型的实例。然后我们使用 DataContractJsonSerializer 的构造函数创建了一个新的实例,将类型参数设置为 Person,然后使用 ReadObject 方法将 JSON 字符串转换为 Person 类型的实例。最后,我们在控制台输出了 Person 对象的 Name 和 Age 属性的值。
阅读全文