问题标签 [datacontractjsonserializer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 反序列化时未调用构造函数
我一直在阅读的各个地方都指出,在反序列化时,.NET Framework 会调用FormatterServices.GetUninitializedObject,其中不调用构造函数并且未设置字段初始值设定项。如果这是真的,为什么要调用我的构造函数?是否存在可以调用构造函数和字段初始值设定项的实例?
我的课:
我的反序列化代码:
我的输出(格式化并评论了我):
c# - DataContractJsonSerializer:用接口属性序列化一个类
我正在尝试像这样序列化一个类:
当我序列化该对象的实例时,一切正常,但如果我尝试反序列化,则会出现错误。我正在使用 Mono 2.6 进行测试,这是单声道平台上的错误:
如果我从源属性中删除 DataMember 属性,则反序列化工作。
查看在序列化过程中生成的 json 字符串,我可以看到 Filters 列表中的每个项目都包含一个“__type”属性,用于指定实现 IFilter 的具体类。但是对于缺少属性“__type”的 ISource 类型的属性“Source”,情况并非如此,因此反序列化过程不知道使用哪个具体类来重新创建该属性。
由于我没有方便的 Windows 框,我不知道这是否是单声道特定问题,或者我在这里遗漏了一些东西。
我应该如何告诉 DataContractJsonSerializer 在源属性中包含“__type”属性?
提前致谢,
更新:
再调查一下,现在我可以强制 DataContractJsonSerializer 始终发出类型信息,调用带有 alwaysEmitTypeInformation=true 的构造函数。但问题仍然存在。有任何想法吗?
c# - DataContractJsonSerializer DateTime 隐式时区转换
我在数据库中有一个日期时间,我使用实体框架从数据库中检索它,然后通过 DataContractJsonSerializer 通过 JSON API 传递数据。
在 DataContractJsonSerializer 中处理时,日期时间字段中的时间似乎已根据服务器的本地时区进行了调整。纪元表示的时间比预期时间提前 1 小时。DateTime 种类是 UTC,但以前它是未指定的,我遇到了同样的问题。
在我的应用程序中,我希望在时区之间显式转换,并且在客户端而不是服务器上进行转换,因为这更有意义。我对这种隐式功能感到惊讶,因为我的日期时间值应该是简单的值,就像整数一样。
谢谢
asp.net - .NET DataContractJsonSerializer,嵌套集合让我陷入循环
我正在研究一个类,以通过 3 个不同的提供者获取地址的纬度和经度(只是为了比较)。
请注意,这可能看起来很多,但如果您愿意,一些信息仅供参考。下面的数据<hr>
没必要看。
我的 Google Maps DataContract 像冠军一样工作。但是我的 Bing 和 MapQuest DataContracts 玩得不是很好。我认为这个问题必须处理 Bing 和 MapQuest 的 JSON 的嵌套集合,我只是不知道如何处理它们。
这是处理数据的函数。
这是三个 DataContracts
测试MapQuest时出现此错误
System.NullReferenceException:对象引用未设置为对象的实例。在线的
测试必应时出现此错误
System.IndexOutOfRangeException:索引超出了数组的范围。在线的
仅供参考,我还将发布每个 JSON 响应的样子。
谷歌地图
必应地图
地图任务
添加
wcf - DataContractJsonSerializer 和 maxItemsInObjectGraph
如何为 DataContractJsonSerializer 设置 maxItemsInObjectGraph?
我收到一条错误消息"Maximum number of items that can be serialized or deserialized in an object graph is '65536'. Change the object graph or increase the MaxItemsInObjectGraph quota."
65536这个数字是从哪里来的。DataContractJsonSerializer的文档说默认值为 Int32.MaxValue。
我试图在行为配置中设置它:
但我收到如下错误:"Invalid element in configuration. The extension name 'dataContractJsonSerializer' is not registered in the collection at system.serviceModel/extensions/behaviorExtensions."
将行为更改<dataContractSerializer maxItemsInObjectGraph="500000"/>
为没有错误但不会更改值(这不足为奇,因为我没有使用 dataContractSerializer)
客户端是使用 ChannelFactory 创建的,因此我无法使用此处描述的 ServiceBehavior 属性
json - Silverlight json 不会序列化
我一直在尝试在 Silverlight 中序列化一些 json 数据。我正在使用以下代码
尝试序列化。这没用。这是我能找到的唯一一个在 Visual Studio 中没有产生错误的例子。我正在传递一个自定义编码对象(堆栈)的列表。当我尝试查看结果时,我得到一个空白字符串。有人对如何将我指向正确的方向有一些想法吗?
c# - 如何格式化 DateTime 结构,使其与 DataContractJsonSerializer 使用的格式匹配?
当我将当前时间序列化为DateTime
使用时,DataContractJsonSerializer
我得到以下1307654074638-0500
.
我想生成我自己的可以由 反序列化的 JSON DataContractJsonSerializer
,但我不知道如何生成DateTime
具有相同格式的 JSON。
我相信它使用自纪元以来的毫秒数作为它的基础,但我不断得到大约 6 小时的数字。我相信这与时区(我在中央时间)有关,这是有道理的。
输出
或者为了更容易比较
c# - 如何使用 DataContractJsonSerializer 序列化匿名类型
使用下面的代码,如何使用 DataContractJsonSerializer 将结果列表转换为 JSON?
ETA:我已经看到了几种通用 JSON 化对象的扩展方法,但我不确定要使用什么类型,因为这是一种匿名类型。
谢谢!
json - 如何反序列化 WCF 数据服务 (OData) 返回的 JSON
外部 OData 服务在 POST 操作期间返回以下内容(对于服务操作):
我写了以下内容来反序列化上述内容:
现在,oRespCus 确实被实例化了。但是,所有字段都设置为空。
谁可以帮我这个事。
谢谢
c# - 在 ASP.NET C# 中反序列化 JSON
我有以下 JSON:
我正在尝试创建一个表示此数据的 C# 类(我暂时只对这三个属性感兴趣):
我正在使用以下代码,它没有按预期工作。的所有属性值Recipe
都在返回null
。有什么想法我在这里出错了吗?