2012-01-31 10 views
3

JavaScriptSerializerを使用して未知の動的JSONを解析する方法を教えてください。特に、GoogleカレンダーAPI用の独自のラッパーを作成しています。イベントは、プライベートオブジェクトとプロパティの未知のセットを含む共有オブジェクトの両方にextendedPropertiesと呼ばれるオブジェクトがあります。C#でJavascriptSerializerを使用して不明なJSONを解析する

"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が読み書きできるプロパティの戻り値の型は何ですか?辞書のいくつかの並べ替え?

ありがとうございます!

+2

試しましたか?あなたの質問には、自分自身に答えることができるという憶測が含まれています。 –

答えて

0

パーサーは、@シンボルを認識します。 .net 4を使用している場合は、dynamicをタイプとして使用できます。Dictionary<string,string>を試すことができますが、辞書を同じ参照オブジェクトに直列化および非直列化する際には常に問題があります。 List<KeyValuePair<string, string>>は通常そのトリックを行います。

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

このコードを使用して、未知のjsonオブジェクトをデシリアライズしました。

関連する問題