c# - 带引号的C#StringBuilder(forJSON)

标签 c# .net json

我已经构建了一个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#中获取字符串以包含引号,从而产生所需的字符串?

非常感谢!
布雷特

最佳答案

“快速监视/监视”窗口将在其中添加额外的\。如果在“文本可视化器”中查看它,则不会看到它们:

快速观察:

"{  \"data\": {  \"urls\": [  {\"url\": \"domain/path1\"}  ,{\"url\": 
    \"domain/path2\"}  ]  }}"


可视化器(实际输出):

{  "data": {  "urls": [  {"url": "domain/path1"}  ,{"url": "domain/path2"}  ]  }}


\表示引号已转义,并将按您期望的那样包含在最终字符串中。即您的输出没有任何问题。

注意测试时,我使用的是"\""而不是Convert.ToChar(34)

关于c# - 带引号的C#StringBuilder(forJSON),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4379262/

相关文章:

c# - 从 Excel 文件加载数据并加载到临时表中

java - 如何将 Json 字符串转换为 Java 对象?

javascript - Accordion 中的刷新按钮

c# - 在 LINQ to SQL 中,通过外键添加时是否需要 InsertOnSubmit()?

c# - NpgsqlCopyIn 因超时 ("CommandTimeout"设置而失败)

c# - 如何使用函数<>设置属性

c# - 如何有效地删除字符串的一部分

PHP json_encode - 奇怪的行为

c# - Xamarin.Forms MediaManager 从本地存储播放视频

c# - 如何使属性描述属性在 IntelliSense 中可见?