问题标签 [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# - 我如何知道一个类型是否可以使用 Json.NET 进行转换?
我正在尝试为一个集合编写一个接口,该集合在内部将数据存储为JObject
Add<T>
如果自定义类型没有DataContract
注释,我想在该方法中提供一个有用的异常。例如,如果有人打电话:
"Cannot serialize type 'CustomType'. DataContract annotations not found."
如果CustomType
没有正确的注释,它将抛出异常。
到目前为止,我已经找到了一种方法来获取类型定义中的每个泛型参数,以便我可以检查它们:
并尝试像这样实现 add 方法:
我认为这将适用于原始类型和自定义类型,但不适用于非通用 .NET 类型,因为它们并不都有DataContract
注释。有没有办法知道哪些类型可以被序列化JsonConvert
?
c# - 特殊字符,XmlException 和 DataContractJsonSerializer
每当被反序列化的 JSON 包含像“@”这样的字符时,我都会从输出中看到 XmlException。最后,它仍然成功地反序列化它,但它让我不知道出了什么问题。它还会减慢调试速度,因为许多 json 响应都包含这些字符。
重现代码:
System.Xml.ni.dll 中发生了“System.Xml.XmlException”类型的异常,并且在托管/本机边界之前未处理
我错过了什么吗?如果可能的话,我不想在反序列化之前进行任何搜索和替换。
编辑
如果我在 .NET 4.5 控制台应用程序中运行相同的代码,我不会看到此异常发生。
json - WCF,将 Json 序列化为 XML
使用 DataContractJsonSerializer,我能够得到 Json 字符串。
现在,我想将此 Json(名为“流”)转换为 XML。有什么办法不使用“[WebInvoke(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]”?
服务
客户端
我目前拥有的服务器端(但没有运气)
c# - DataContractJsonSerializer 可以处理循环引用吗?
是否有任何DataContractSerializer 可以处理而DataContractJsonSerializer 不能处理的序列化/反序列化场景?
特别是,我正在考虑循环引用:这个 MSDN 页面解释了如何DataContractSerializer
通过IsReference = true
在DataContractAttribute
构造函数中使用来管理循环引用。另一方面,DataContractAttribute.IsReference文档没有明确声明其适用性仅限于DataContractSerializer
.
还会DataContractJsonSerializer
尊重IsReference
财产吗?
c# - C# DataMember 序列化器排序与预期相反
根据这篇文章,当序列化为 JSON 时,我希望在字段列表的顶部看到我的基类中的字段。但是,我看到列表底部的字段。排序在实际类本身中是正确的,但在层次结构中不正确。
正在发生的事情是它与班级正确排序,它正在做与我期望的完全相反的事情。我希望基类首先对其字段进行序列化。我不想使用 Order=X 属性,因为我的对象中有太多字段。
这是与此处描述的完全相反的行为:
http://msdn.microsoft.com/en-us/library/ms729813(v=vs.110).aspx
序列化 MySecondChild 的实例时...
预期的
实际的
c# - DataContractJsonSerializer - 反序列化为字典
我想将作为 REST 查询(无法更改 json 字符串)结果获得的 json 反序列化为字典类型。json 字符串看起来像这样:
我为“有用”创建布尔属性,为“计数”等创建整数,但我对“属性”有疑问。如您所见,在每个部分(和每个结果)中,我得到不同的“属性”。我需要将它们反序列化为一些通用集合,如字典或 KeyValuePair 列表。问题是,如 msdn 中所述(此处 - http://msdn.microsoft.com/en-us/library/bb412170.aspx)“字典不是直接使用 JSON 的方法”。
如果是这样,我该怎么做?我的应用程序是 silverlight 5、.Net 4、VS 2010。
提前致谢!
c# - JavaScriptSerializer 序列化器不处理空值
在我的 WPF MVVM 应用程序中,我从一个安静的 WCF 服务以 JSON 格式获取数据。我正在使用 JavaScriptSerializer 反序列化这些数据。但这无法处理空值(如果有)。在这种情况下,我必须发送一些值而不是我不想发送的 DBnull 值。
WCF 服务:
其中 dcReportEmployee 是数据合同
在 WPF 应用程序中:
在这里,如果 objResponseString 包含任何空值,那么它会失败。我本可以发送一些空值替换,但我不希望这样。
对此有什么想法吗?
.net - 如何序列化不同类型且没有名称的 JSON 参数列表
我需要向包含以下 JSON 的服务器发布请求。我想在代表请求的类上使用 DataContractJsonSerializer 和 DataContract、DataMember 属性,例如
这代表一个 RPC 调用
在某些 API 中。API 中有许多具有不同参数列表的调用。
如果参数列表包含 T 类型的对象,我可以在其中使用 generic List<T>
,这很简单,但 API 需要不同类型的参数列表(包括非原始对象)。
那么如何为参数数组构造 DataContract 呢?
c# - 类型不可序列化,因为它不是公共 datacontractserializer
我是 wcf 和 windows phone 8 应用程序的新手并调用 wcf 服务(其他开发人员)并尝试反序列化数据它有时工作正常但大多数时候它给了我错误
“数据合约类型 'TEST.Model.Response`1[[TEST.Model.Announcement, TEST, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' 无法反序列化,因为成员 'ResponseData' 不是公开。将成员设为公开将修复此错误。或者,您可以将其设为内部,并在程序集上使用 InternalsVisibleToAttribute 属性以启用内部成员的序列化 - 有关更多详细信息,请参阅文档。请注意,这样做具有一定的安全性影响。”
我的模型类是
当我尝试调用时
c# - 如何使用 DataContractJsonSerializer 解析对象列表?
如何使用 DataContractJsonSerializer 序列化对象列表?
当我尝试解析以下 json 字符串时,我得到了 InvalidCastException
"[{\"name\":\"Adam\",\"age\":\"null\"},{\"name\":\"James\",\"age\":\"null \"}]"
我一直在使用以下助手类。