C#escape double引号不按预期工作

时间:2016-11-23 12:09:42

标签: c# asp.net-mvc escaping

我正试图在C#中转义字符串中的双引号,但事情并没有像我预期的那样工作。我的代码如下所示: -

public JObject GetIndicatorsAsJSON()
{

    String Test = "";

    foreach (var ARow in db.IPMSApp_TestGridView)
    {
        Test += ",{ \"indicator\" : \"" + ARow.indicator + "\", \"type\": \"" + ARow.type + "\\"}";
    }

    Test = "[" + Test.Substring(1, Test.Length - 1) + "]"; //Strip out first comma

    JObject json = JObject.Parse(Test);

    return json;
}

当我尝试运行它时,我得到一个错误(我有点期待),但是在检查控制台窗口中'Test'变量的内容时我发现了,而不是按预期看到双引号(因为我已经逃脱了他们,我正在看到“\”而不是。

例如 - 我的测试字符串变量的输出应该类似于此(为了问题的目的而简化): -

[{“indicator”:“Activity - First”}]

但它看起来像这样: -

[{\“indicator \”:\“Activity - First \”}]

我是如何逃避双引号的?我尝试过使用逐字字符串文字,但我仍然遇到同样的问题。

1 个答案:

答案 0 :(得分:1)

引用转义没有任何问题,控制台只会以该格式输出它,但它很好(虽然令人困惑)。

我预计问题在于解析JSON。当您将对象包装在数组day1中时,您应该使用以下代码:

[]