c# - 如何反序列化属性类型不固定的 json - 可以是空字符串或对象,请提出建议。如何处理这种情况?

标签 c# json

我必须处理 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/

相关文章:

c# - 帮助正则表达式

mysql - 如何在MySQL中用对象(["Ra"])来JSON_REPLACE值?

javascript - jQuery 无法完成提交并在地址中添加参数

iphone - 如何从JSON数据中获取数据

c# - 如何使用游戏对象作为 Unity 中的开关在第一人称和第三人称相机之间切换?

c# - Windows 文件安全,删除访问规则

c# - 如何停止/切断 iOS 上的 xamarin essentials 文本到语音以开始新的语音

java - 如何在 Java Play 中使用 Form 从 JSON 请求中解析 Date 对象

python - Django 对象不可 JSON 序列化

c# - WiX Bootstrap 项目上的 .NET 4.8 框架安装问题