c# - JavaScriptSerializer 无法正确序列化 DynamicJsonObject

标签 c# json

我有一个 DynamicJsonObject,例如:

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

我需要 obj 的 json 字符串。我尝试使用 JavaScriptSerializer:

var json = JavaScriptSerializer.Serialize(obj);

但结果始终是json == '{}'

有解决办法吗?最好不要使用第三方库

最佳答案

您可以将自定义转换器添加到 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);

或复制 here 中的代码

关于c# - JavaScriptSerializer 无法正确序列化 DynamicJsonObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940762/

相关文章:

c# - 匿名类型的 linq 查询

json - 自定义时间 Marshall Unmarshall

java - 如何在Spring框架中的Hibernate一对多关系中仅从父类获取json数据

php - 错误 - 使用 JSON 将数组从 PhP 传递到 jQuery

C# 线程和阻塞

c# - 需要 JavaScript 语法修正

c# - HttpPostedFileBase.SaveAs 工作但没有文件上传也没有异常

c# - 反序列化具有不同数据结构的 JSON

javascript - 使用变量从项目数组中检索 json 数据

c# - 使用 UWP 将信息保存到 SOAP