首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#将文件名作为json参数传递-获取错误“未识别的转义序列”。

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

Stack Overflow用户
提问于 2019-02-11 15:57:09
回答 1查看 818关注 0票数 2

我想通过JSON传递一个文件路径。在反序列化时,我得到了错误:

无法识别的逃逸序列。(43):{"Jobtype":"StepBatch","SelectedId":"D:\Input\file1.CATPart"}

我已经转义了角色,但它仍然显示error...am,我在这里遗漏了什么?

代码语言:javascript
复制
string json = "{\"Jobtype\": \"StepBatch\",\"SelectedId\": \"D:\\Input\\file1.CATPart\"}";
var jsonObj = new JavaScriptSerializer().Deserialize<List<Arguments>>(json);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-11 16:01:01

问题是在执行时字符串的内容是:

代码语言:javascript
复制
{"Jobtype": "StepBatch","SelectedId": "D:\Input\file1.CATPart"}

这是无效的JSON,因为SelectedId的值中有反斜杠。您需要JSON是:

代码语言:javascript
复制
{"Jobtype": "StepBatch","SelectedId": "D:\\Input\\file1.CATPart"}

所以你的C#必须是:

代码语言:javascript
复制
string json = "{\"Jobtype\": \"StepBatch\",\"SelectedId\": \"D:\\\\Input\\\\file1.CATPart\"}";

但是,考虑到您无论如何都要立即反序列化JSON,我建议完全消除JSON部分,只需要自己创建Arguments值。

如果您需要生成JSON,直接创建正确的值,然后获得JavaScriptSerializer (或者更好的Json.NET)来为您创建JSON,而不是手工编码它。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54634386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档