将字符串转换为类型时出错-Newtonsoft JSON反序列化

布谷鸟

我有一个SQL参数,如果插入成功与否,该参数将返回一条消息。

SqlParameter positivePar = new SqlParameter("@jsonGoodData", System.Data.SqlDbType.NVarChar, -1);
positivePar.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(positivePar);

我将该SQL参数转换为字符串

cmdPositive = cmd.Parameters["@jsonGoodData"].Value.ToString();

然后像这样序列化它,因为稍后我要用json填充模型

string jsonPositive = Newtonsoft.Json.JsonConvert.SerializeObject(cmdPositive, Newtonsoft.Json.Formatting.Indented);

我正在尝试反序列化json并将其发送到模型中

List<TableNotificationModel> posJson = JsonConvert.DeserializeObject<List<TableNotificationModel>>(jsonPositive);

但我得到一个错误:

ArgumentException:无法将System.String强制转换或转换为System.Collections.Generic.List`1 [ModelLayer.Models.TableNotificationModel]。

这是模特

public class TableNotificationModel
    {
        [JsonProperty("OPERATOR_OBJECTID")]
        public int OPERATOR_OBJECTID { get; set; }

        [JsonProperty("SETTLEMENT_OBJECTID")]
        public string SETTLEMENT_CODE { get; set; }

        [JsonProperty("TECHNOLOGY_OBJECTID")]
        public string TECHNOLOGY_CODE { get; set; }

        [JsonProperty("UPLOAD_SPEED_CLASS_OBJECTID")]
        public string UPLOAD_SPEED_CLASS_CODE { get; set; }

        [JsonProperty("DOWNLOAD_SPEED_CLASS_OBJECTID")]
        public string DOWNLOAD_SPEED_CLASS_CODE { get; set; }

        [JsonProperty("DATA_CATEGORY_QOS_OBJECTID")]
        public string DATA_CATEGORY_QOS_CODE { get; set; }

        [JsonProperty("SHAPE")]
        public string SHAPE { get; set; }

        [JsonProperty("messageOut")]
        public string Message { get; set; }

    }

这是调试器在此处输入图片说明中cmdPositive的值,也是cmdNegative的值,因为只有cmdNegative才会显示错误消息,说明插入失败的原因。在此处输入图片说明

是否应该不以字符串形式返回SQL参数?我还尝试将jsonPositive更改为模型,但会引发错误。对实习生有何建议?

mjwills

问题是您如何使用:

string jsonPositive = Newtonsoft.Json.JsonConvert.SerializeObject(cmdPositive, Newtonsoft.Json.Formatting.Indented);

此代码不是必需的,因为cmdPositive它不是需要序列化为JSON的对象-它已经是JSON。

所以与其:

string jsonPositive = cmdPositive;

足够(或jsonPositive完全删除并使用cmdPositive)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Newtonsoft JSON反序列化

我可以确定newtonsoft是否可以对字符串进行反序列化?

反序列化类时出现“ Newtonsoft.Json.JsonSerializationException无法找到用于类型的构造函数”错误

Newtonsoft.Json-反序列化大对象时出现内存不足异常

Newtonsoft Json将具有布尔属性的动态列表反序列化为字符串

Newtonsoft.Json使用php 7.0 json_encode数组字符串反序列化问题

Newtonsoft转义的JSON字符串无法反序列化为对象

Newtonsoft json反序列化将缺少的int值设置为null而不是零

对C#中的撇号字符串进行Newtonsoft JSON反序列化时出错

对Newtonsoft.Json反序列化进行基准测试:从流和字符串

在C#中使用Newtonsoft.JSON努力反序列化JSON字符串

当Newtonsoft可以是单个字符串或行话时,反序列化JSON属性

用Newtonsoft Json.Net反序列化字符串化的(带引号的)嵌套对象

Newtonsoft.Json-反序列化自定义类型时引发DeserializeObject:将值“ somestring”转换为CustomType时出错

json newtonsoft:反序列化包含字符串列表的对象

使用Newtonsoft.JSON用C#反序列化Json字符串

使用 Newtonsoft 库在不同应用程序之间反序列化类型处理的 json

如何实现将复杂类型序列化/反序列化为简单类型的 Newtonsoft JSON 转换器

JSON Newtonsoft C# 反序列化不同类型的对象列表

Json newtonsoft:从对象反序列化字符串数组

反序列化字符串时的 C# Newtonsoft JsonSerializationException

使用 NewtonSoft 反序列化 JSON

Newtonsoft 反序列化不会将字符串转换为 DateTime

使用 Newtonsoft.Json.JsonConvert.DeserializeObject VISUAL BASIC 将 json 字符串反序列化为可视化基本对象

使用 Newtonsoft.Json 反序列化 C# 对象时出错:将值“xxx”转换为类型“System.String[]”时出错

在 F# 中使用 newtonsoft 反序列化记录类型时如何禁止空字符串?

如何反序列化 Json Newtonsoft

Newtonsoft Json 在反序列化为字符串时转换日期时间格式

Newtonsoft.Json - 如何根据传递的对象属性类型选择要反序列化的构造函数?