问题标签 [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.

0 投票
0 回答
229 浏览

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 字符串上执行与该方法完全相同的操作。

0 投票
2 回答
4318 浏览

c# - 使用 DataContractJsonSerializer,将 JSON 字符串反序列化为具有列表和接口作为属性的 C# 对象

我正在开发调用 3rd 方 REST 服务的 ac#.dotNet 项目。

示例类结构:

Json_String1:(带有类型提示)

Json_String2:(没有类型提示)

因此,对于给定的类结构,如果我使用 生成 json(对象的MainClassDataContractJsonSerializer,我得到Json_String1,如果我直接反序列化,它工作正常。

而在获取数据时,响应是Json_String2(没有类型提示)。因此,在反序列化时出现以下错误。

无效的演员表例外

InvalidCastException 未处理。无法将“System.Object”类型的对象转换为“WpfApplication1.IClass2”类型。

现在,我必须通过添加类型提示手动修改上面的 json(字符串操作),才能成功反序列化。

问题 1)如何避免这种 Json String Manipulation 进行反序列化?

问题 2)如何在没有类型提示的情况下创建 json?

编辑: 1. 添加了由MainClass实现的IMainInterface。2.dotNet框架4

0 投票
1 回答
273 浏览

asp.net - 当 Json 对象属性以“@”符号命名时使用 DataContractJsonSerializer

在使用 DataContractJsonSerializer 解析 json 响应时,我遇到了一个属性名为 @id 的 json 对象,我似乎无法填充此字段。所有其他字段都没有问题地填充。我什至可以使用 Fiddler 填充此字段,但不能使用 DataContractJsonSerializer。我的代码如下...

如何将该 json @id 字段映射到我的 Vehicle 类 id 属性?

0 投票
0 回答
448 浏览

c# - 使用 DataContractJsonSerializerSettings 解析 JSON 中的字典,而无需使用标头类

我正在将 JSON 字符串解析为项目列表。json 文本将项目组织为父项目“材料”下的字典。下面的代码有效。在不需要 MaterialHeader 类的情况下,有没有更好的方法来做到这一点?

0 投票
2 回答
12676 浏览

c# - 来自命名空间''的预期元素'root'..遇到名称为''的'None',命名空间''

在过去的 4 个小时里,我一直在寻找如何解决这个问题的方法,但我还没有找到解决方案。

我正在使用 .NET 构建一个 API,并希望解析从 API 调用发回的 JSON 信息。

我目前的方法执行以下操作:

但我目前在指示的行得到一个异常。我确保我的类实现了正确的序列化命名空间:

我试图序列化的类已经相应地设置了它的 DataContract 和 Member 字段:

但是,当我使用 Postman 等 HTTP 客户端发出请求时,我收到问题标题中所述的错误

在此处输入图像描述

0 投票
2 回答
904 浏览

xamarin - Xamarin 为 Android 空白应用程序使用 DataContractJsonSerializer

我正在尝试使用 DataContractJsonSerializer 但我似乎无法获得它的引用/命名空间。我在 .NET Framework 4.5 上创建了我的应用程序。

当我单击添加参考时,我只获得 System.ServiceModel 的 2.0.5.0 版本

0 投票
0 回答
815 浏览

c# - 从返回的 JSON 字符串中删除斜杠和引号

我正在使用下面的代码将我的模型类转换为 JSON 数据

当我从浏览器打开时,生成的 JSON 看起来像这样

那么我怎样才能摆脱正斜杠。问题不是关于序列化为 JSON 和显示自定义属性,而是关于从响应中删除斜杠

直接返回模型而不是解析的 JSON 是一种方法,但在我的情况下,我在 CalendarEvent 类中有一个属性名称“类”,我无法修改它,因为插件 [ https://github.com/Serhioromano/bootstrap-calendar ] 我我正在使用要求这样的结构所以无论如何我都必须使用 JSON Serializationa 那么我怎样才能摆脱这个正斜杠和不需要的引号问题呢?

0 投票
1 回答
47 浏览

c# - Json写入无法序列化

过程:

  1. 创建Player类。

  2. 创建播放器List<Player>()

  3. 将玩家添加到列表中。

  4. 写一个json串行文件。

    当我单击writeJson按钮时,我收到错误:

    /li>

问题:

如何List<Player>()CollectionDataContractAttribute.

0 投票
0 回答
76 浏览

json - 在 Silverlight 4 中使用 DataContractSerializer 反序列化 JSON 数据时出错

我正在尝试使用 DataContractJsonSerializer 将 JSON 从 Web 服务反序列化为 Silverlight 中的复杂对象。当 JSON 数据最少时,我没有问题,但当数据很大时,我收到 SerializationException 消息“ '不是有效的 JSON 原语。当 JSON 数据之后存在无关数据时,也会发生此错误。 "

如何在不必限制传输的 JSON 数据大小的情况下解决此错误

0 投票
2 回答
2884 浏览

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 WriteObjectmethod 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?