【问题标题】:Parsing Unknown JSON using JavascriptSerializer in C#在 C# 中使用 JavascriptSerializer 解析未知 JSON
【发布时间】:2012-01-31 05:10:12
【问题描述】:

如何使用 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) 序列化程序是否理解 & 符号,因此它会解析属性“private”?

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

提前致谢!

【问题讨论】:

  • 你试过了吗?您的问题包含推测您应该能够自己回答。

标签: c# json javascriptserializer


【解决方案1】:
var serializer = new JavaScriptSerializer();
var jsonObject = serializer.Deserialize<IDictionary<string, object>>(jsonStr);

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 2019-02-20
      相关资源
      最近更新 更多