【发布时间】:2019-02-12 00:01:01
【问题描述】:
我想通过 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);
【问题讨论】:
-
在 json 中,您需要双 \ 字符作为值。 JSON 字符串中的实际 值 应该是
D:\\Input\\file1.CATPart,因此您需要将每个 \ 字符加倍。 -
你熟悉verbatim strings吗?
-
@itsme86:这只是将转义字符从斜杠更改为双双引号。
-
你从哪里得到 JSON?
-
不要使用
JavaScriptSerializer,它是 AJAX 时代的一个过时类,有几个怪癖。甚至 ASP.NET Web API 也使用 JSON.NET