问题标签 [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 字符串?
我正在调用在某些情况下返回带有重复节点的 JSON 的 Web 服务,提供类似于以下内容的输出:
我依赖服务提供商来解决这个问题,这不是他们的优先事项,所以我必须处理它。为了处理这个问题,我使用 JsonReaderWriterFactory 将 JSON 转换为 XML,然后使用以下例程从生成的 XML 中删除重复节点:
我现在在一个单独的区域需要使用 DataContractJsonSerializer 将 JSON 反序列化为强类型对象,使用以下代码:
当 JSON 包含该重复节点时,这将失败,因此我需要实现与 RemoveDuplicateChildren 方法中相同的功能,但在反序列化之前单步执行 JSON 而不是 XML 节点。我不能使用使用 JsonConvert 转换为 XML 的快速而简单的选项,使用我现有的方法删除节点,然后再转换回 JSON,因为与 XML 的转换会导致 JSON 发生变化. 是否有与 XmlNode 类提供的在 C# 中导航 JSON 层次结构的等效方法?
更新:
这个问题已经被一些评论混淆了。澄清一下,我要从 JSON 中删除的节点是在同一父级的同一级别重复的任何节点(按名称,内容无关),例如第二个“shipments”的第二个“outlet_id”上例中的项目。我需要以没有硬编码元素名称的通用方式执行此操作。上面的 RemoveDuplicateChildren 方法正是需要的,我只是想问是否有一个类可以用来在 JSON 字符串而不是 XML 字符串上执行与该方法完全相同的操作。
c# - 使用 DataContractJsonSerializer,将 JSON 字符串反序列化为具有列表和接口作为属性的 C# 对象
我正在开发调用 3rd 方 REST 服务的 ac#.dotNet 项目。
示例类结构:
Json_String1:(带有类型提示)
Json_String2:(没有类型提示)
因此,对于给定的类结构,如果我使用 生成 json(对象的MainClass
)DataContractJsonSerializer
,我得到Json_String1,如果我直接反序列化,它工作正常。
而在获取数据时,响应是Json_String2(没有类型提示)。因此,在反序列化时出现以下错误。
InvalidCastException 未处理。无法将“System.Object”类型的对象转换为“WpfApplication1.IClass2”类型。
现在,我必须通过添加类型提示手动修改上面的 json(字符串操作),才能成功反序列化。
问题 1)如何避免这种 Json String Manipulation 进行反序列化?
问题 2)如何在没有类型提示的情况下创建 json?
编辑: 1. 添加了由MainClass实现的IMainInterface。2.dotNet框架4
asp.net - 当 Json 对象属性以“@”符号命名时使用 DataContractJsonSerializer
在使用 DataContractJsonSerializer 解析 json 响应时,我遇到了一个属性名为 @id 的 json 对象,我似乎无法填充此字段。所有其他字段都没有问题地填充。我什至可以使用 Fiddler 填充此字段,但不能使用 DataContractJsonSerializer。我的代码如下...
如何将该 json @id 字段映射到我的 Vehicle 类 id 属性?
c# - 使用 DataContractJsonSerializerSettings 解析 JSON 中的字典,而无需使用标头类
我正在将 JSON 字符串解析为项目列表。json 文本将项目组织为父项目“材料”下的字典。下面的代码有效。在不需要 MaterialHeader 类的情况下,有没有更好的方法来做到这一点?
c# - 来自命名空间''的预期元素'root'..遇到名称为''的'None',命名空间''
在过去的 4 个小时里,我一直在寻找如何解决这个问题的方法,但我还没有找到解决方案。
我正在使用 .NET 构建一个 API,并希望解析从 API 调用发回的 JSON 信息。
我目前的方法执行以下操作:
但我目前在指示的行得到一个异常。我确保我的类实现了正确的序列化命名空间:
我试图序列化的类已经相应地设置了它的 DataContract 和 Member 字段:
但是,当我使用 Postman 等 HTTP 客户端发出请求时,我收到问题标题中所述的错误
xamarin - Xamarin 为 Android 空白应用程序使用 DataContractJsonSerializer
我正在尝试使用 DataContractJsonSerializer 但我似乎无法获得它的引用/命名空间。我在 .NET Framework 4.5 上创建了我的应用程序。
当我单击添加参考时,我只获得 System.ServiceModel 的 2.0.5.0 版本
c# - 从返回的 JSON 字符串中删除斜杠和引号
我正在使用下面的代码将我的模型类转换为 JSON 数据
当我从浏览器打开时,生成的 JSON 看起来像这样
那么我怎样才能摆脱正斜杠。问题不是关于序列化为 JSON 和显示自定义属性,而是关于从响应中删除斜杠
直接返回模型而不是解析的 JSON 是一种方法,但在我的情况下,我在 CalendarEvent 类中有一个属性名称“类”,我无法修改它,因为插件 [ https://github.com/Serhioromano/bootstrap-calendar ] 我我正在使用要求这样的结构所以无论如何我都必须使用 JSON Serializationa 那么我怎样才能摆脱这个正斜杠和不需要的引号问题呢?
c# - Json写入无法序列化
过程:
创建
Player
类。创建播放器
List<Player>()
。将玩家添加到列表中。
写一个
json
串行文件。当我单击
/li>writeJson
按钮时,我收到错误:
问题:
如何List<Player>()
用CollectionDataContractAttribute
.
json - 在 Silverlight 4 中使用 DataContractSerializer 反序列化 JSON 数据时出错
我正在尝试使用 DataContractJsonSerializer 将 JSON 从 Web 服务反序列化为 Silverlight 中的复杂对象。当 JSON 数据最少时,我没有问题,但当数据很大时,我收到 SerializationException 消息“ '不是有效的 JSON 原语。当 JSON 数据之后存在无关数据时,也会发生此错误。 "
如何在不必限制传输的 JSON 数据大小的情况下解决此错误
c# - Using DataContractJsonSerializer to create a Non XML Json file
I want to use the DataContractJsonSerializer to serialize to file in JsonFormat.
The problem is that the WriteObject
method only has 3 options XmlWriter, XmlDictionaryWriter and Stream.
To get what I want I used the following code:
Is this the only way or have I missed something?