为了账号安全,请及时绑定邮箱和手机立即绑定

C# 将文件名作为 json 参数传递 - 获取错误“无法识别的转义序列”。

C# 将文件名作为 json 参数传递 - 获取错误“无法识别的转义序列”。

C#
鸿蒙传说 2022-09-04 16:38:59
我想通过 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


查看完整回答
反对 回复 2022-09-04
  • 1 回答
  • 0 关注
  • 250 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号