C# 无法从反序列化数据中检索键和值信息 dynamic data=JsonConvert.DeserializeObject(结果); foreach(数据中的var字段) { var deserializedData=新的deserializedData { Label=field.Key.ToObject(), Content=field.Value.ToObject() }; }
注:数据={“名称”:“测试”} 错误:'Newtonsoft.Json.Linq.JProperty'不包含'Key'的定义 我想我理解问题所在,但我不确定是否有办法实现这种行为,或者是否有不同的方法来处理这样的动态关键值场景。C# 无法从反序列化数据中检索键和值信息 dynamic data=JsonConvert.DeserializeObject(结果); foreach(数据中的var字段) { var deserializedData=新的deserializedData { Label=field.Key.ToObject(), Content=field.Value.ToObject() }; },c#,asp.net,json,json.net,deserialization,C#,Asp.net,Json,Json.net,Deserialization,注:数据={“名称”:“测试”} 错误:'Newtonsoft.Json.Linq.JProperty'不包含'Key'的定义 我想我理解问题所在,但我不确定是否有办法实现这种行为,或者是否有不同的方法来处理这样的动态关键值场景。 钥匙会变,所以我不知道是姓名、电话、电子邮件还是其他字段 根据JProperty的值包含键,JProperty的子项是值 为了以IEnumerable的形式遍历返回的数据的子对象,需要将反序列化对象显式声明为: 虽然我更喜欢使用JObject的强类型版本,因为可以在编
钥匙会变,所以我不知道是姓名、电话、电子邮件还是其他字段 根据JProperty的值包含键,JProperty的子项是值 为了以
IEnumerable
的形式遍历返回的数据的子对象,需要将反序列化对象显式声明为:
虽然我更喜欢使用JObject
的强类型版本,因为可以在编译时进行更多检查。这太棒了……我喜欢强类型版本,我将实现它……再次感谢。
dynamic data = JsonConvert.DeserializeObject(result);
foreach (var field in data)
{
var deserializedData = new DeserializedData
{
Label = field.Key.ToObject<string>(),
Content = field.Value.ToObject<string>()
};
}
var data = JObject.Parse(result);
foreach (var field in data)
{
var deserializedData = new DeserializedData
{
Label = field.Key,
Content = field.Value.ToObject<string>()
};
}
dynamic data = JsonConvert.DeserializeObject(result);
foreach (var field in data)
{
// "field" happens to be of type JProperty
var deserializedData = new DeserializedData
{
Label = field.Name,
Content = field.Value.ToObject<string>()
};
}