Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

C# 无法从反序列化数据中检索键和值信息 dynamic data=JsonConvert.DeserializeObject(结果); foreach(数据中的var字段) { var deserializedData=新的deserializedData { Label=field.Key.ToObject(), Content=field.Value.ToObject() }; }

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的强类型版本,因为可以在编

注:数据={“名称”:“测试”} 错误:'Newtonsoft.Json.Linq.JProperty'不包含'Key'的定义

我想我理解问题所在,但我不确定是否有办法实现这种行为,或者是否有不同的方法来处理这样的动态关键值场景。
钥匙会变,所以我不知道是姓名、电话、电子邮件还是其他字段

根据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>()
        };
    }