2012-03-11 9 views
0

Microsoftの名前空間System.Web.HelpersSystem.Web.Script.Serializationを使用すると、MicrosoftのシリアライザがMicrosoftの動的JSONオブジェクトでうまくいくと予想されました。これは素朴な仮定であることが判明しました。 JavaScriptSerializerは、オブジェクトを "{}"にシリアル化します。この一見些細な作業のために推奨される方法は何ですか?Microsoft DynamicJsonObjectからJSON文字列を抽出する簡単な方法は何ですか?

 dynamic obj = new DynamicJsonObject(new Dictionary<string,object>()); 
    obj.FirstName = "Henry"; 
    obj.LastName = "Ford"; 
    JavaScriptSerializer jsc = new JavaScriptSerializer(); 
    string str = jsc.Serialize(obj); 
    Assert.AreNotEqual(str, "{}"); // Does not fail 

答えて

1

は、それが正常にそれを行いますJson.Net

dynamic obj = new DynamicJsonObject(new Dictionary<string,object>()); 
obj.FirstName = "Henry"; 
obj.LastName = "Ford"; 
string str = JsonConvert.SerializeObject(obj); 

を試してみてください。あなたは匿名クラス

string s = JsonConvert.SerializeObject(new {FirstName="Henry",LastName="Ford"}); 

ExpandoObject動的オブジェクトへ

dynamic obj = new ExpandoObject(); 
obj.FirstName = "Henry"; 
obj.LastName = "Ford"; 
string s = JsonConvert.SerializeObject(obj); 

デシリアライズが

dynamic obj2 = JsonConvert.DeserializeObject(@"{""FirstName"":""Henry"",""LastName"":""Ford""}"); 
Console.WriteLine(obj2.FirstName + " " + obj2.LastName); 
+0

んJson.NetがDynamicJsonObjectに代わるものを提供したり、私がすべきことも可能ですすぎだとそれを使用することができますSystem.Web.Helpersの実装を使用しますか?私はSystem.Webの下で見つけたことに感銘を受けしません。 –

+0

私は、Microsoftの部品が壊れていると結論づけられたときに答えをマークします(場合によっては混乱している)。 –

+0

@JackWester、ダイナミックオブジェクトを扱うのに 'DynamicJsonObject'は必要ないので、私はあなたの質問を理解しているかどうかはわかりません。私はこの目的のために 'ExpandoObject'を使う方法を示す答えを更新しました。L.B 11分前 –

関連する問題