我有一个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更改为模型,但会引发错误。对实习生有何建议?
问题是您如何使用:
string jsonPositive = Newtonsoft.Json.JsonConvert.SerializeObject(cmdPositive, Newtonsoft.Json.Formatting.Indented);
此代码不是必需的,因为cmdPositive
它不是需要序列化为JSON的对象-它已经是JSON。
所以与其:
string jsonPositive = cmdPositive;
足够(或jsonPositive
完全删除并使用cmdPositive
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句