3

如何使用 JavaScriptSerializer 解析一些未知的动态 JSON。特别是,我正在为 Google Calendar 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) 序列化程序是否理解 & 符号,因此它会解析属性“私有”?

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

提前致谢!

4

2 回答 2

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

我已经使用此代码反序列化未知的 json 对象。

于 2012-01-31T05:31:13.720 回答
0

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

于 2012-01-31T05:14:40.943 回答