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 回答