C# 如何使用asp.net澄清现有json数据

C# 如何使用asp.net澄清现有json数据,c#,asp.net,json,C#,Asp.net,Json,下面是我以某种方式生成的JSON数据: [ { id: "1926d769-319b-41ec-8bba-deabbcc44992", start: "2014-09-02T11:00:00", end: "2014-09-02T12:00:00", title: ""ATR" Recieved by Lender - First", body: ""ATR" Recieved by Lender - First", color: "",

下面是我以某种方式生成的JSON数据:

[
  {
    id: "1926d769-319b-41ec-8bba-deabbcc44992",
    start: "2014-09-02T11:00:00",
    end: "2014-09-02T12:00:00",
    title: ""ATR" Recieved by Lender - First",
    body: ""ATR" Recieved by Lender - First",
    color: "",
    editable: false,
    officeEvent: false,
    allDay: false
  },
  {
    id: "37e65cc0-a44a-460d-acc6-f8847fcdc384",
    start: "2014-08-04T12:00:00",
    end: "2014-08-04T13:00:00",
    title: "Sign Disclosures",
    body: "Sign Disclosures",
    color: "",
    editable: false,
    officeEvent: false,
    allDay: false
  }
]
第一项titlebody包含双引号(“”),因此JSON数据显示错误。现在,我如何从整个JSON数据中同时转义这段引用,如下所示

标题:“贷款人收到的ATR-第一”


如何在Asp.Net C#中实现这一点?

Brian是正确的,您确实需要与供应商沟通,让他们修复数据/代码。对于不使用循环的变通方法,尽管您可以使用strings-replace方法来获得JOSN的干净值

string cleanJson = source.toString();
string cleanJson = cleanJson.Replace("title: \"\"", "title: \"\\\"");
string cleanJson = cleanJson.Replace("body: \"\"", "title: \"\\\"");
return convertBackToJson(cleanJson);

如果出于性能原因不想使用循环,这可能不是更好的解决方案。如果你想加快进程,试着把你的JSON分解成碎片,如果你可以将伪记录隔离,并将它们附加到最终的输出中。

最初JSON是如何生成的?是你创造的,还是来自第三方?@Brian Rogers,是的,来自第三方。我使用title.replace(“\”,“\\\”)在foreach循环中转义title和body。但是没有foreach有什么捷径吗?如果是第三方提供的,你应该联系他们,让他们知道他们正在创建无效的JSON,并要求他们修复它。根据规范,JSON字符串中的引号必须转义(请参阅)。如果没有办法做到这一点,那么你就会被困在做你现在正在做的事情来解决它。如果JSON无效,标准JSON解析器将给出一个错误,如本例所示。