2012-04-17 8 views
4

私は少しの状況があります。あなたは単にclassなどを使用することができますので、RestSharp/Json.NET JSONオブジェクトとして配列をシリアル化

{ 
    "a":"a value", 
    "b":"b value" 
} 

すべての罰金とダンディです:私は、要求の一部として、以下を送信するためにサービスが私を必要としているRestSharpを、使用してWebサービスと対話していますこの:しかし

public class MyClass 
{ 
    public string A { get; set; } 
    public string B { get; set; } 
} 

私は実行時でプロパティ名を知っているか分かりません。したがって、私はExpandoObjectを使用しようとしましたが、もちろん、これは単純にJSON配列としてシリアル化:

[ 
    "a":"a value", 
    "b":"b value" 
] 

だから、私が(をしてデシリアライズ)シリアライズAをできるようにする必要があると思われますDictionary(またはIEnumerable<KeyValuePair<string, string>>)をJSONオブジェクトとして使用します(つまり、かっこの代わりに中かっこを使用します)。

どのように私はこれを行う可能性があります誰も知っている、機能は、他の場所で再利用されるように、Json.NET属性を使用してですか?

+0

を参照してください、これはここに頼まれた http://stackoverflow.com/questions/3739094/serializing-deserializing-dictionary-of-objects-with-json-をシリアライズされたオブジェクトに反射をサポートしていますnet –

+0

そのポスターの質問は、複雑なオブジェクトの辞書をJsonオブジェクトのJson配列にシリアライズする方法の詳細です。私の質問は、単一のJsonオブジェクトに単純なキー値のペアの辞書をシリアル化する方法です。各キーはプロパティ名で、各値はプロパティ値です。 –

答えて

3

JObjectの使い方は?

var obj = new JObject(); 

obj["One"] = "Value One"; 
obj["Two"] = "Value Two"; 
obj["Three"] = "Value Three"; 

var serialized = obj.ToString(Formatting.None); 

はあなたの.NETクラスのlibsから

{"One":"Value One","Two":"Value Two","Three":"Value Three"} 
+0

それはいつもあなたを得る簡単なものですよね?私だけですか?私はこれを試して、あなたに戻ってくるでしょう... :) –

+0

これは私が必要としたとおりに正確に機能しました。私は逐次化コードを自分のドメインとは別にしたいので、オブジェクトとして直列化したいキーの値のペアをループし、それぞれの値を対応するJObjectのインデックスに割り当てました。 –

+0

これは私が探していた 'Attribute'の解決策ではありませんが、おそらくカスタムのコンバーターを使ってこれからいくつかの解決策を適用することができます。 –

0

使用JavascripSerializerオブジェクトを提供します。それは

msdn docs

関連する問題