如何解决使用 System.Runtime.Serialization.Json 在不创建类的情况下将 JSON 字符串解析为动态对象
我要解析的 JSON 字符串是来自 API 的响应,该响应可能没有固定的属性。因此无法创建具有属性的类来解析 JSON 字符串。
我尝试将 JSON 字符串解析为动态/Expando 对象,但它没有解析嵌套对象,
例如
string jsonText = "[{ \"FirstName\":\"John\",\"LastName\":\"K\",\"Address\":{\"Line1\":\"Sector 6\"} }]";
我使用以下代码反序列化 JSON 字符串,
public static T Deserialize<T>(this string str) where T : class
{
var ser = new DataContractJsonSerializer(typeof(T),new DataContractJsonSerializerSettings
{
UseSimpleDictionaryFormat = true,IgnoreExtensionDataObject=true
});
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
{
return (T)ser.Readobject(ms);
}
}
IEnumerable<ExpandoObject> contactObject = Deserialize<IEnumerable<ExpandoObject>>(jsonText);
此代码无法解析 Address 属性。它只是显示对象而不是实际值。
由于项目要求不能使用 NewtonsoftJSON 和 System.Text.Json。
如何在不使用 System.Runtime.Serialization.Json 创建自定义类的情况下将复杂的 JSON 字符串解析为动态对象?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。