猿问

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

我想通过 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);


鸿蒙传说
浏览 255回答 1
1回答

米脂

问题是字符串在执行时的内容是:{"Jobtype":&nbsp;"StepBatch","SelectedId":&nbsp;"D:\Input\file1.CATPart"}这不是有效的 JSON,因为 的值中包含反斜杠。您需要 JSON 为:SelectedId{"Jobtype":&nbsp;"StepBatch","SelectedId":&nbsp;"D:\\Input\\file1.CATPart"}所以你的C#必须是:string&nbsp;json&nbsp;=&nbsp;"{\"Jobtype\":&nbsp;\"StepBatch\",\"SelectedId\":&nbsp;\"D:\\\\Input\\\\file1.CATPart\"}";但是,鉴于您无论如何都要立即反序列化JSON,我建议完全摆脱JSON部分,而只是自己创建值。Arguments如果需要生成&nbsp;JSON,请直接创建正确的值,然后获取(或最好 Json.NET)为您创建 JSON,而不是手动编码。JavaScriptSerializer
随时随地看视频慕课网APP
我要回答