我必须处理 API 响应返回的 JSON 对象。
我尝试创建 expando 对象并将所有属性添加到它。 而不是将值复制到它。
dynamic dPropertyLinkValue = new ExpandoObject();
dPropertyLinkValue.link = "";
dPropertyLinkValue.value = "";
我期望有更好的方法来做到这一点,而无需 expando 对象。
最佳答案
您可以通过将 JSON 转换为动态对象来反序列化 JSON。请引用以下示例: 这里将 Json 反序列化为 dynamic 对象,然后循环遍历其属性,您可以检查您是否重视它是否是对象。
string jsonText = "{a:'testString',b:{'prop1':'value1'}}";
var jObj = JsonConvert.DeserializeObject<dynamic>(jsonText);
foreach (JProperty property in jObj)
{
string text = property.Name + " : " + property.Value;
//Here you can check whether property.Value is Jobject or any other value
}
关于c# - 如何反序列化属性类型不固定的 json - 可以是空字符串或对象,请提出建议。如何处理这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56291350/