问题标签 [jsonconvert]

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 投票
2 回答
1557 浏览

c# - 用于复杂嵌套属性的自定义模型绑定器 AspNet Core 2.2

我有一个 Angular 客户端并使用此主体创建一个 POST 请求:

{“名称”:“示例”,“货币”:“欧元”}

我使用 Odata 协议,我的控制器是:

带模板:

和货币:

Currency 是一个特殊的类,因为它具有私有构造函数,因此我无法创建 Currency 的新实例。我想使用现有实例(欧元或美元)。

(StringEnumeration 支持 Parse 和 TryParse 方法并返回正确的实例)

标准配置:

我的问题是当客户端在http://localhost:4200/template上调用 POST 时 ,正文为:{"Name":"example","Currency":"EUR"}

Model Bindel 无法在 Currency.EUR 实例中转换“EUR”,所以我想提供一些东西来帮助模型 binder 使用 Currency.EUR 实例创建具有 Currency 属性的模板

这是生成的错误:尝试读取属性“货币”的值时发现了具有非空值的“PrimitiveValue”节点;但是,需要一个“StartArray”节点、一个“StartObject”节点或一个具有空值的“PrimitiveValue”节点。

在我的项目中,我有许多内部带有 Currency 属性的类。

我尝试在模板类上使用 IModelBinder 并且它可以工作,但我不想为任何货币属性编写 modelBinder。

我尝试使用 JsonConverter,但它对我不起作用(可能有问题)

我的预期结果是具有以下值的模板实例:

0 投票
1 回答
56 浏览

c# - 如何从它自己的类从十进制转换为整数?

我有一个带有 json 属性的类,我希望它接收一个整数,该整数是零的数量,应该只为十进制属性相乘。

2 = 乘以 100 3 = 乘以 1000 等等

...

...

...

...

例子:

如果我通过 3 (int)

12.00(十进制值)

12.00 x 1000(3 个零)

结果:12000

0 投票
3 回答
1964 浏览

java - 如何转换 LinkedHashMap> 变成一个 JSONObject?

我是 JSONObject 的新手,我正在尝试将LinkedHashMap<String, List<Node>>转换为 json 文件。地图的结构是这样的:

每个节点都有两个属性:值和标签。

我想要的是这样的:

我正在使用 JSONObject,我在不同的线程中寻找解决方案,但没有任何帮助。我知道这是一个特殊的问题,但我需要用这个数据结构得到这个结果。

难点是在地图内循环节点元素而不覆盖已插入 JSONObject 中的元素。

谢谢。

0 投票
1 回答
138 浏览

c# - 等待操作后的代码没有执行

我正在编写一个 xamarin 表单应用程序,并且正在使用我创建的 API。我已经按照教程来使用 Api,但是异步操作之后的代码永远不会被执行,它会跳到主函数。

该代码与我一直关注的教程中的代码完全相同。我没有找到任何信息,因为没有错误消息。

JsonConvert.DeserializeObject永远不会被执行,因此变量Lecturista永远不会被初始化。

提前致谢。

0 投票
0 回答
1353 浏览

c# - 为什么httpcontent readasstringasync会抛出取消的异常

我不确定我的代码中有多少与找出问题相关,所以我将从头开始。我使用 Injection 创建一个 azure web job 程序,它看起来像这样:

然后我的应用程序运行方法如下所示:

然后服务调用第三方 api 并按如下方式进行调用:

当我调用上面的代码时:var json = result.Content.ReadAsStringAsync().Result;我得到一个异常:

请求被中止:请求被取消。

我不知道为什么。我没有在任何地方调用取消,它也没有超时,因为这会立即发生,我设置了 30 分钟的超时时间,只是为了看看它是否有所作为。结果对象有值,它有标题和状态码 200。所以看起来 post 请求已经工作了,但是当它试图解析响应时,它抛出了那个异常。有谁知道我哪里出错了?

如果我通过提琴手查看响应,我会看到以下内容:

{"result_code":0,"result_message":"一些消息","re​​sult_output":"json"}

编辑:经过更多测试,我发现如果我从网站调用相同的代码(相同的参数)(不做任何更改),那么它就可以工作。但是,如果我从上面显示的应用程序中调用它,那么它不会。

0 投票
1 回答
67 浏览

c# - Windows 服务在 JsonConvert.DeserializeObject 附近终止

下面是为复制文件的窗口服务编写的代码。它从“JsonConvert.DeserializeObject>(jsonStirng);”行终止

下面是我得到的日志

0 投票
1 回答
204 浏览

c# - SerializeObject 正在返回一个空对象

JsonConvert.SerializeObject 正在返回一个空对象

我可以序列化一个通用对象,我可以在不同的程序集中序列化这个对象。我已经验证了这些属性是公开的,并且还用 json 标记明确标记。Newtonsoft.Json 没有抛出异常。相关版本 Newtonsoft.Json 12.0.2,通过 nuget 安装。

测试失败,因为预期调用和实际调用不同。实际调用(未粘贴)是我所期望的,但 Json 序列化在测试中给出了一个空对象。

logger.Verify(m => m.LogUsage(JsonConvert.SerializeObject(_svc), "AddService", string.Empty, false), Times.Once());

更新:我尝试添加以下测试,它仍然序列化为一个空对象,尽管 _svc 被正确定义(我可以通过设置断点并检查它来判断。)

0 投票
2 回答
337 浏览

serialization - 简单序列化 ODataQueryOptions

我试图:

但是得到了

Newtonsoft.Json.JsonSerializationException:'从'Microsoft.Owin.Host.SystemWeb.CallStreams.InputStream'上的'ReadTimeout'获取值时出错。'

“此流不支持超时。”

我知道已经有一个关于序列化 Stream 的问题:

Newtonsoft Json.net - 如何序列化流的内容?

但在这种情况下,我不能从中“提取流值” ODataQueryOptions,或者我可以吗?

一些想法?

0 投票
1 回答
132 浏览

c# - 将 JSON 从多个对象反序列化为对象列表

无法为从服务接收的 JSON 响应创建映射对象/响应模型。

尝试创建自定义 JsonConverter 但找不到任何合适的方法来帮助解决反序列化问题

以下是我从服务获得的 JSON 响应。

示例 1:- 相同的服务可以返回以下 JSON 格式

创建 c# 根对象类,以便可以轻松地使用 JsonConvert 进行反序列化

0 投票
0 回答
6638 浏览

json.net - JSONConvert.SerializeObject 最大长度

最近发现当要转换的对象太大时,现有的序列化代码会失败。我知道如何增加 .NET 的 JavascriptSerializer 的最大长度。但是我如何在 JsonConvert.SerializeObject 中做同样的事情呢?

对 web.config 设置的引用:

<jsonSerialization maxJsonLength="50000000"/>

说它只被WCF尊重。我们没有使用 WCF。这是一个需要序列化对象的简单 .NET 库。

相关代码为:

这就是我创建设置的方式:

我在 JsonSerializerSettings 中没有看到我需要的属性。我的对象是多层的,但主要是字符串类型。我转换上传的文件并将其存储为字符串。该文件的大小是我看到失败时要更改的元素。

不幸的是,我使用的库没有记录,所以我找不到确切的错误。但是该代码适用于较小的文件(<150KB),而对于>500KB 的较大文件则失败。