使用C#中的JavascriptSerializer解析未知JSON

本文关键字:未知 JSON JavascriptSerializer 中的 使用 | 更新日期: 2023-09-27 18:22:08

如何使用JavaScriptSerializer解析一些未知的动态JSON。特别是,我正在为Google日历API编写我自己的包装器。事件有一个名为extendedProperties的对象,该对象同时包含一个私有对象和一个包含未知属性集的共享对象:

"extendedProperties": {
    "private": {
        "UnknownKey1": "UnknownValue1",
        "UnknownKey2": "UnknownValue2",
        "UnknownKey3": "UnknownValue3"
    },
    "shared": {
        "UnknownKey1": "UnknownValue1",
        "UnknownKey2": "UnknownValue2",
        "UnknownKey3": "UnknownValue3"
    }
}

我想为JavaScriptSerializer:创建一个这样的类

public class ExtendedProperties
{
    public ??? @private { get; set; }
    public ??? shared { get; set; }
}

当然也有问题。

(1) 序列化程序是否理解与号,以便解析属性"private"?

(2) JavaScriptSerializer可以读取/写入的属性的返回类型是什么?某种字典?

提前感谢!

使用C#中的JavascriptSerializer解析未知JSON

var serializer = new JavaScriptSerializer();
var jsonObject = serializer.Deserialize<IDictionary<string, object>>(jsonStr);

我已经使用了这段代码来反序列化未知的json对象。

解析器理解@符号。如果您使用的是.net 4,则可以使用dynamic作为您的类型。您可以尝试Dictionary<string,string>,尽管我在将字典序列化和反序列化到同一引用对象时总是遇到问题。List<KeyValuePair<string, string>>通常起作用。