2

次のような DynamicJsonObject があります。

var obj = new DynamicJsonObject();
obj.Field1 = "field1";
obj.Field2 = "field2";

obj の json 文字列が必要です。私は使用してみましたJavaScriptSerializer

var json = JavaScriptSerializer.Serialize(obj);

でも結果はいつもjson == '{}'

これに対する回避策はありますか? できればサードパーティのライブラリを使用しないでください

4

2 に答える 2

1

カスタムコンバーターをJavaScriptSerializerに追加できます。System.Web.Helpersにはすでに存在しますが、内部にあります。次のコードを使用して登録できます。

var type = Type.GetType("System.Web.Helpers.DynamicJavaScriptConverter, System.Web.Helpers");
var converter = (JavaScriptConverter)Activator.CreateInstance(type);
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new[] { converter });

var json = serializer.Serialize(obj);

またはここからコードをコピーします

于 2013-02-18T16:53:39.160 に答える
1

ご回答ありがとうございますSystem.Web.Helpers.Json。したがって、私のコードは次のようになります。

string json = Json.Encode(obj);

作成していないため、匿名オブジェクトを使用できませんobj.DynamicJsonObjectの「フォーマット」で既に提供されています。

于 2013-02-18T17:01:08.500 に答える