【发布时间】:2017-01-09 11:03:29
【问题描述】:
下面的 JSON 数据我正在尝试使用 JavaScriptSerializer.Deserialize 反序列化,但是,我遇到了异常。
代码:
var jsonSerialiser = new JavaScriptSerializer();
FCMCasepackVM casepack = jsonSerialiser.Deserialize<FCMCasepackVM>(selectedCasePack);
JSON 数据:
{ P_ID:"1478952", P_NM:"BAHLSEN COOKIES WAFER ROLL MILK CHOCOLATE 3.5
OZ", BYR_ID:191, BYR_NM:"BYR_NM", VDR_ID:48532, VDR_NM:"KEHE FOOD DIST
INC", CPK_ID:"1478952-12", CPK_DSC:"BAHLSEN COOKIES WAFER ROLL MILK
CHOCOLAT", VDR_IT_CD_ID:"6398", UPC_ID:7056921950.0,
CPK_PRI_FLG:"True", CPK_SRC:"PEF", **FCM_RGLT_TYP_CT:"FSV"P"**,
CPK_P_ORIG_DSC:"", RGLN_EXCL_FLG:"False", BRND_TYP:"" }
例外
附加信息:无法转换“System.String”类型的对象 输入“Meijer.MerchProduct.FCM.Models.ViewModels.FCMCasepackVM”
即使我尝试在反序列化之前对数据进行序列化,但得到不同的异常
代码:
var jsonSerialiser = new JavaScriptSerializer();
selectedCasePack = jsonSerialiser.Serialize(selectedCasePack);
FCMCasepackVM casepack = jsonSerialiser.Deserialize<FCMCasepackVM>(selectedCasePack);
序列化后的JSON数据
"{ P_ID:\"1478952\", P_NM:\"BAHLSEN COOKIES WAFER ROLL MILK CHOCOLATE
3.5 OZ\", BYR_ID:191, BYR_NM:\"BYR_NM\", VDR_ID:48532, VDR_NM:\"KEHE FOOD DIST INC\", CPK_ID:\"1478952-12\", CPK_DSC:\"BAHLSEN COOKIES
WAFER ROLL MILK CHOCOLAT\", VDR_IT_CD_ID:\"6398\",
UPC_ID:7056921950.0, CPK_PRI_FLG:\"True\", CPK_SRC:\"PEF\",
FCM_RGLT_TYP_CT:\"FSV\"P\", CPK_P_ORIG_DSC:\"\", RGLN_EXCL_FLG:\"False\", BRND_TYP:\"\" }"
例外
附加信息:传入的对象无效,应为“:”或“}”。 (319): { P_ID:"1478952", P_NM:"BAHLSEN 饼干威化卷牛奶 巧克力 3.5 盎司", BYR_ID:191, BYR_NM:"BYR_NM", VDR_ID:48532, VDR_NM:"KEHE FOOD DIST INC", CPK_ID:"1478952-12", CPK_DSC:"BAHLSEN 饼干威化卷牛奶巧克力", VDR_IT_CD_ID:"6398", UPC_ID:7056921950.0,CPK_PRI_FLG:“真”,CPK_SRC:“PEF”, FCM_RGLT_TYP_CT:"FSV"P", CPK_P_ORIG_DSC:"", RGLN_EXCL_FLG:"假", BRND_TYP:"" }
谁能帮帮我?
提前致谢, 卡提克
【问题讨论】:
-
看起来你有一个格式错误的 json 字符串,第二个异常告诉你。 FCM_RGLT_TYP_CT 键似乎有问题,因为有 3 个双引号,其中一个应该转义或删除
标签: c# asp.net-mvc-4 json.net special-characters