问题标签 [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 投票
1 回答
2380 浏览

.net - 如何使用 DataContractJsonSerializer 创建嵌套的 JSON 对象和数组?

我想用这样的嵌套数组和对象创建 JSON:

这可能DataContractJsonSerializer吗?如果是这样,我的实体应该是什么样子?

0 投票
2 回答
11239 浏览

c# - 如何在没有字符集的情况下使用 DataContractJsonSerializer 在 C# 中发送 JSON?

我使用DataContractJsonSerializer并将StringContentJSON 发送到 Web 服务:

这将产生此 Content-Type 标头:

是否可以省略字符集而只使用以下标题?

我没有看到这样做的过载StringContent

0 投票
1 回答
5782 浏览

arrays - 使用 Windows Store 应用程序使用 DataContractJsonSerializer 对数组进行反序列化

是否可以在 Windows 应用商店应用程序中使用本机DataContractJsonSerializer反序列化 json 数组?

示例,来自:

到,大致在以下行中的任何内容:

到目前为止,当我这样做时,我的尝试总是导致“空”列表或“空”IEnumerable:

0 投票
3 回答
22401 浏览

c# - 在 C# 中使用 DataContractJsonSerializer 反序列化 JSON 对象

我确信这个问题已经被问了一遍又一遍,但由于某种原因,我仍然无法让它发挥作用。

我想反序列化一个包含单个成员的 JSON 对象;一个字符串数组:

这是我试图反序列化的类:

这是我尝试反序列化的方法:

所以我尝试填充对象:

但由于某种原因,这会返回“”

0 投票
2 回答
10721 浏览

c# - 在 C# 中使用 DataContractJsonSerializer 使用 List<> 反序列化 JSON 对象

我想反序列化一个包含单个成员的 JSON 对象;一个字符串数组:

这是我试图反序列化的类:

这是我尝试反序列化的方法:

但是当我检查时,子列表的所有字段都是空白的,例如

我想一定有什么我错过了=(

0 投票
1 回答
1592 浏览

c# - 包含元素类型的子类型的 DataContractJsonSerializer 通用列表

我将DataContractJsonSerializer用于 JSON 序列化/反序列化。

我在 JSON 数组中有两种对象类型,并希望它们都被反序列化为相应的对象类型。具有以下类定义

如何检测它们并将它们反序列化为相应的对象类型并存储在PostsAndUsers属性中?

0 投票
1 回答
1035 浏览

c# - .Net 的快速、动态的单向 JSON 序列化

我想实现从 CLR 对象到 JSON 字符串的序列化,但我有以下限制:

  1. 我不能使用外部库。我的项目本身就是一个库,我不能引入依赖项。
  2. 序列化必须是一种方式。即我的.Net 对象将没有任何设置器。这是因为不可能将一些数据从 JSON 序列化回托管对象。
  3. 它必须是动态的。某些要序列化的类型要到运行时才能知道。
  4. 出于显而易见的原因,它必须很快。我考虑过使用反射并手动进行序列化,但我害怕时间损失。
0 投票
1 回答
347 浏览

c# - 使用不同类型反序列化 JSON 以进行序列化/反序列化

我有一堂课:

序列化时,“ArbitraryProperty”需要采用“B”类的形式:

这是 JSON 输出:

但是,当我从服务器返回相同的对象时,该属性会以简单的字符串形式返回,如下所示:

必须有一个技巧让 DataContractJsonSerializer 知道它应该将值反序列化为字符串而不是“B”。

有没有一种特殊的方法来设置“A”类?:/

有什么建议么?

0 投票
1 回答
814 浏览

c# - 使用 DataContractJsonSerializer 序列化复杂字典

使用 .NET 4.5 版本的DataContractJsonSerializerDataContractJsonSerializerSettings.UseSimpleDictionaryFormat我可以序列化字典。因此,例如这本字典:

将被转换成漂亮的 JSON:

但是,如果我有另一个字典作为值:

结果 JSON 看起来很糟糕:

有没有办法解决这个问题?

PS:我知道还有其他好的 JSON 序列化器,但是在这种情况下我需要使用DataContractJsonSerializer

0 投票
2 回答
29538 浏览

c# - 处理发送到 REST Web 服务的 JSON 字符串中的 & 字符的正确方法

好的,

我正在使用System.Runtime.SerializationDataContractJsonSerialization

问题是在请求中我发送了一个带有&字符的属性值。说,,AT&T我得到一个错误的响应:Invalid JSON Data

我认为转义将在库内完成,但现在我看到序列化未触及 &&字符。

是的,对于 JSON 格式,这是有效的。但这对我的 POST 请求来说将是一个问题,因为我需要将其发送到服务器,如果该服务器包含 & 符号,则会以错误响应,因此我在这里。

HttpUtility.HtmlEncodeSystem.Web图书馆里,所以要走的路是使用Uri.EscapeUriString. 我这样做是为了尝试,但无论如何,如果没有它,所有请求都可以正常工作,除了&符号在一个值中。

编辑:HttpUtility类被移植到 Windows Phone SDK,但编码字符串的首选方式应该是Uri.EscapeUriString.

第一个想法是弄脏手并开始替换会导致服务器出现问题的特殊字符,但是,我想知道我应该做的另一种解决方案是高效且“正确”的吗?

我应该告诉我使用

将 JSON 转换为 abyte[]并写入Stream. 和,

作为WebRequest.ContentType.

那么,我是因为什么原因而搞砸了还是我想念什么?

谢谢你。