Json:如何使用json.net正确剥离转义字符

我有以下格式的json响应。

"[{\\\"JobID\\\":\\\"1\\\",\\\"BillGenerationDate\\\":\\\"4/29/2013 2:53:34 PM\\\",\\\"BillID\\\":\\\"115743\\\",\\\"BillNo\\\":\\\"115743\\\",\\\"CustomerID\\\":\\\"4041705\\\",\\\"PayStatus\\\":\\\"0\\\",\\\"PaymentRequiredStatus\\\":\\\"True\\\",\\\"ProductName\\\":\\\"Epic FBO test\\\",\\\"Description\\\":\\\"Epic Automation 2\\\\r\\\\n\\\",\\\"ProductType\\\":\\\"eBill \\\",\\\"DueType\\\":\\\"-1\\\",\\\"DueDate\\\":\\\"2013-03-15\\\",\\\"Amount\\\":\\\"63.70\\\",\\\"Cost\\\":\\\"\\\"}, {\\\"JobID\\\":\\\"9\\\",\\\"BillGenerationDate\\\":\\\"5/2/2013 10:21:39 AM\\\",\\\"BillID\\\":\\\"115743\\\",\\\"BillNo\\\":\\\"115743\\\",\\\"CustomerID\\\":\\\"4041705\\\",\\\"PayStatus\\\":\\\"0\\\",\\\"PaymentRequiredStatus\\\":\\\"True\\\",\\\"ProductName\\\":\\\"FBO Test Product\\\",\\\"Description\\\":\\\"FBO Product Test\\\",\\\"ProductType\\\":\\\"eBill \\\",\\\"DueType\\\":\\\"-1\\\",\\\"DueDate\\\":\\\"2013-05-01\\\",\\\"Amount\\\":\\\"150.70\\\",\\\"Cost\\\":\\\"\\\"}] 

我相信json.net处理转义字符,我使用下面的代码将它反序列化为字典集合。

 var billList = JsonConvert.DeserializeObject<List<Dictionary>>(contentCorrected); 

但是这个json解析会抛出exception“无效的属性标识符:.Path'[0]’,第1行,第2位。” 我们可以通过操纵json响应字符串来解决这个问题吗?

尝试string contentCorrected = contentCorrected.Replace(@"\", ""); 在反序列化过程之前。

  1. 在反序列化之前删除所有“\”字符。 使用替换function。

    yourJsonString.Replace(“\\\\\”,“”);

  2. 你的Json字符串不完整或者似乎不是List>"的类型。更正你希望转换json的类型。我修改了你的json,如下所示,它有效。

    newJson =“{\”array \“:”+ yourJsonString +“}”

对我来说,下面的代码有效

 string contentCorrected = contentCorrected.Replace(**@"\""", ""**); 

在答案中使用有效的双引号时会出现问题。 在所有情况下,删除和/或替换都不会解决这个问题。 在我找到一个简单的解决方案之前,我也很沮丧:

 var billList = JsonConvert.DeserializeObject>>(@contentCorrected);