【发布时间】:2010-12-07 16:51:51
【问题描述】:
我已经构建了一个 JSON 字符串(要发布到 Web 服务),并且我使用 C# StringBuilder 类来执行此操作。问题是,当我插入引号时,StringBuilder 类会转义它们。
我目前正在构建 JSON 字符串:
StringBuilder dataJSON= new StringBuilder();
dataJSON.Append("{");
dataJSON.Append(" " + Convert.ToChar(34) + "data" + Convert.ToChar(34) + ": {");
dataJSON.Append(" " + Convert.ToChar(34) + "urls" + Convert.ToChar(34) + ": [");
dataJSON.Append(" {" + Convert.ToChar(34) + "url" + Convert.ToChar(34) + ": " + Convert.ToChar(34) + domain + "/" + path[0] + Convert.ToChar(34) + "}");
dataJSON.Append(" ,{" + Convert.ToChar(34) + "url" + Convert.ToChar(34) + ": " + Convert.ToChar(34) + domain + "/" + path[1] + Convert.ToChar(34) + "}");
dataJSON.Append(" ]");
dataJSON.Append(" }");
dataJSON.Append("}");
但是,命令:
dataJSON.ToString(); 得到字符串:
{ \"data\": { \"urls\": [ {\"url\": \"domain/test1.html\"} , {\"url\": \"domain/test2.html\"} ] }}
注意到转义的引号了吗?这真的把我搞砸了,因为服务器无法处理斜线。
我想要的(当我使用 PHP 时它可以很好地发布到我的服务器)应该是:
{ "data": { "urls": [ {"url": "domain/test1.html"} , {"url": "domain/test2.html"} ] }}
是否有任何方法可以在 C# 中获取包含引号的字符串,从而生成所需的字符串?
非常感谢! 布雷特
【问题讨论】:
-
你在哪里看到的?在调试器中?
-
是的,在中间窗口中。这可能是问题吗?中间窗口会添加斜线吗?
-
这不是真正返回的内容
-
“中间窗口会添加斜线吗?”。是的,这正是正在发生的事情。为该值添加一个监视,并使用文本查看器查看,您将看到字符串中的实际内容,没有转义。
-
为什么是
Convert.ToChar(32)?\"有什么问题? IE。" \"data\": {".