我想通过 JSON 传递文件路径。在反序列化时,我收到错误:无法识别的转义序列。(43): {“Jobtype”: “StepBatch”,“SelectedId”: “D:\Input\file1.CATPart“}我已经转义了字符,但它仍然显示错误...我在这里错过了什么吗?string json = "{\"Jobtype\": \"StepBatch\",\"SelectedId\": \"D:\\Input\\file1.CATPart\"}";var jsonObj = new JavaScriptSerializer().Deserialize<List<Arguments>>(json);
1 回答

米脂
TA贡献1836条经验 获得超3个赞
问题是字符串在执行时的内容是:
{"Jobtype": "StepBatch","SelectedId": "D:\Input\file1.CATPart"}
这不是有效的 JSON,因为 的值中包含反斜杠。您需要 JSON 为:SelectedId
{"Jobtype": "StepBatch","SelectedId": "D:\\Input\\file1.CATPart"}
所以你的C#必须是:
string json = "{\"Jobtype\": \"StepBatch\",\"SelectedId\": \"D:\\\\Input\\\\file1.CATPart\"}";
但是,鉴于您无论如何都要立即反序列化JSON,我建议完全摆脱JSON部分,而只是自己创建值。Arguments
如果需要生成 JSON,请直接创建正确的值,然后获取(或最好 Json.NET)为您创建 JSON,而不是手动编码。JavaScriptSerializer
- 1 回答
- 0 关注
- 250 浏览
添加回答
举报
0/150
提交
取消