问题标签 [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# - C# - JsonSerializer - DataContract 运行时错误
我呼吁使用 json rest web 服务。
我的课程是:
为了创建这些类,我使用了
http://json2csharp.com/
我的主要类是
但是 jsonResponse = (JsonResponse)serializer.ReadObject(ms)
我有 invalidDataContractException WFEsura.Result 不能被序列化。
描述是:System.Runtime.Serialization.dll 中发生了“System.Runtime.Serialization.InvalidDataContractException”类型的未处理异常
在 App.config 我有
我究竟做错了什么?
c# - DataContractJsonSerializer:集合类型分配给接口时无法序列化
我正在编写一个为多个客户端生成各种 XML 和 JSON 格式的 WCF 服务。下面的代码生成一个 SerializationException:“TPH_PriceListJsonItems”是一个集合类型,当分配给一个不实现 IEnumerable 的接口类型(“TPH_IPriceListItems”)时不能被序列化。XML 部分工作正常,但不是 JSON。我不明白这个错误,我的接口正在实现 IEnumerable 来表示一个包装简单 List<> 的类,所以我可以使用 CollectionDataContract。
}
c# - 使用 DataContract 对变量命名参数进行 JSON 反序列化
假设我们有一个类似于以下内容的 JSON 对象:
构造一个 DataContract 以映射到这种类型似乎相当简单,例如:
现在问题来了,属性的名称是可变的,因此不能保证它是“12345”。由于无法使用属性正确映射此变量,因此在使用 DataContractJsonSerializer 时不会被拾取。
如果我将类更改为支持 IExtensibleDataObject,我可以获得值部分,但不能获得有问题的属性名称。我希望在反序列化/序列化期间保持此值,以便能够在退货请求中发送信息。我不打算改用 Json.NET 来解决这个问题,因为我想知道是否可以在不依赖外部依赖的情况下以某种形式出现。
c# - DataContractJsonSerializer 人类可读的 json
基本上是这个问题的一个骗局,但有一个显着的区别——我必须使用DataContractJsonSerializer
.
一个简单的
生成单行 json,例如(保存在文件中时)
有什么选项可以做到
我可以想到后处理...有更简单的选择吗?例如,类似于DataContractSerializer 生成的格式化 xml?
有没有办法SomeKindOfWriter
在需要时美化json?
c# - parse.com:使用“__type”属性反序列化 JSON 对象的 SerializationException
我正在开发 Windows 10 UWP 应用程序,但似乎无法摆脱此错误:“在 mscorlib.ni.dll 中发生‘System.Runtime.Serialization.SerializationException’类型的异常,但未在用户代码中处理”
我正在使用 Rest API 从 Parse 上的数据存储中检索值并实例化对象。这是我的班级的样子
这是我的 JSON 输出的样子:
错误消息的详细信息如下: 附加信息:元素 ':image' 包含 ':File' 数据合约的数据。反序列化器不知道映射到该合约的任何类型。将与“文件”对应的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将其添加到传递给 DataContractSerializer 的已知类型列表中。
c# - Why are arrays being shown as null after serializing using DataContractJsonSerializer?
There have been a number of questions about serializing and deserializing arrays using DataContractJsonSerializer (including one from me: How can I serialise a string array to JSON using DataContractJsonSerializer?) but none seem to answer the current problem that I'm having.
I am converting an XML string to a JSON string by deserializing the XML to a DataContract object and then serializing that object to JSON, using DataContractJsonSerializer. My approach is the same as I have used on a number of other objects, all of which are serializing to JSON perfectly, but I have an object in which an array property is always rendered as null after serialization.
The classes are defined as follows:-
The XML I'm using looks like this:-
The deserializing and serializing is done in the following methods:-
When I test it, the Consignments property is always null in the resulting JSON.
Debugging shows that this property is null in the object created after the deserialization step so the problem is in the XML deserialization rather than the JSON serialization.
What do I need to change on my object model to get the array converted properly?
json - DataContract Json 序列化程序和项目集合中缺少括号
当我反序列化/序列化并将数据合同转换为 json 格式时,我的项目集合缺少括号并导致它在发布到 web api 时失败。这是带有 [] 括号的正确格式的 json
这就是我得到的,我在篮子里错过了 []
这是我用于序列化的类和函数。
结束命名空间
这是序列化函数
c# - 如何使用 DataContractSerializer 反序列化带有未命名类型集合的 JSON
我正在使用网络服务来获取有关路线里程的数据。然后我使用反序列化器来解析它。这是 JSON 的外观:
有了这个回应,我遇到了几个问题。为什么被包装到集合中,如何设置对象模型?它还抱怨特殊的 __type 属性。所以,我做了“hack”和“prepped”字符串:
然后一切都与这个对象一起工作:
现在我修改了对 Web 服务的调用,我得到了以下响应
现在,为什么有数组和“__type”是有道理的。但我不确定如何编写对象来正确解析它。我想需要应用特殊属性,也许需要通用数组?关于如何正确反序列化它的任何帮助?
PS我可以做更多的黑客攻击并将那些字符串替换为内部有2个对象的对象,但我想知道是否有“正确”的方式来处理它。
c# - 为 HTTPClient 创建 StringContent 时,如何通过 DataContractJsonSerializer 隐式序列化?
我有一个对象,我将其转换为 json 以便将其发送到 Web 服务。我在类中添加了一个返回 json 字符串的方法
该HTTPClient.PutAsync()
方法需要一个StringContent
对象,我这样创建:
我可以打电话PutAsync()
,一切正常。
我最近发现了一种不同的序列化方法,它使用、[DataContract]
和Stream 来序列化对象。我想改用这种方法,因为它可以通过属性对结果进行更多控制,但需要更多样板代码(写入流、重新定位、读取等)。[DataMember]
DataContractJsonSerializer
鉴于我使用 Data 属性来指定我的对象应该如何序列化,我如何指定DataContractJsonSerializer
应该用于序列化它?最好,我可以简单地将对象传递给StringContent
而无需显式方法调用,如下所示:
类似于ToString()
在某些情况下隐式调用的方式,我想知道是否有任何东西可以理解,如果我将内容类型指定为"application/json"
,则传递的对象应该序列化为 json。
c# - 如何在反序列化之前调用构造函数?
我尝试通过数据合同序列化序列化和反序列化自定义类。序列化效果很好。但是,在反序列化时,我遇到了一个问题,因为这个(来源):
反序列化对象时不调用构造函数。
问题是我在构造函数中做了一些初始化。这包括一些数据结构。
如果没有对构造函数的调用,数据结构null
就会失败,并且在反序列化期间对 setter 函数的调用会失败。
在使用任何访问器之前,如何在反序列化过程之前或期间调用构造函数或初始化对象?
我可以通过属性将一些方法声明为回调,如下所示(相同来源):
但看起来它们都是在反序列化后触发的。
我必须切换到 XML 序列化吗?