【发布时间】:2016-11-23 12:09:41
【问题描述】:
我试图在 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;
}
当我尝试运行它时,我得到一个错误(我有点预料到),但是在检查控制台窗口中的“测试”变量的内容时,我发现,而不是像预期的那样看到双引号 (因为我已经逃脱了它们),而是看到了“\”。
例如 - 我的测试字符串变量的输出应该是这样的(为了提问而简化):-
[{ "indicator" : "Activity - First" }]
但它看起来像这样:-
[{ \"indicator\" : \"Activity - First\" }]
我在转义双引号方面做错了吗?我尝试使用逐字字符串文字,但仍然遇到同样的问题。
【问题讨论】:
-
不,没关系,这就是控制台输出带有转义引号的字符串的方式。你的 JSON 错误是什么?
-
您似乎将
[]包裹在一个数组中,您是否尝试过JArray.Parse(Test);代替? -
从 JsonReader 读取 JObject 时出错。当前 JsonReader 项不是对象:StartArray。路径'',第 1 行,位置 1。
-
我用 [ ] 包裹起来,因为我认为那是我应该做的。如果我删除这些,我会得到以下信息:- 阅读完 JSON 内容后遇到的附加文本:,。路径 '',第 1 行,位置 54。
-
JArray.Parse(Test) 完美运行...如果您作为答案发布,我会接受。
标签: c# asp.net-mvc escaping