当前位置: 首页 > 面试题库 >

带引号的C#StringBuilder(forJSON)

寇甫
2023-03-14
问题内容

我已经构建了一个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)当我测试这个。



 类似资料:
  • 问题内容: 之间有什么区别 和 我都尝试过,但似乎都可以,但是我是在问,以防万一我需要小心(例如,%以外的单位等)。 问题答案: 这完全是关于HTML标记的真实有效性。这是W3C(WWW联盟)的工作目的。许多事情可能都在HTML中起作用,但是必须进行验证才能被网络浏览器更仔细地识别。您甚至可以在开头和结尾处省略and 标记,但是完全不建议这样做,没有人这样做,它被视为“错误代码”。 因此,将它们放

  • 我有一个非常好的正则表达式,它从文本中选择引用: 但是我需要一个正则表达式,它从没有引号的文本中选择引号。 例如,我有: 鲸鱼包括八个现存的家族:“鲸豚科”(白鲸),“鲸豚科”(露脊鲸),“鲸豚科”(侏儒露脊鲸),“白鲸科”(灰鲸),“独角鲸科”(白鲸和独角鲸),“抹香鲸科”(抹香鲸)。。。 我需要在引号之间提取文本: 龟甲翅目,龟甲翅目,龟甲翅目,... 要提取括号之间的文本,我使用正则表达式:

  • 问题内容: 之间有什么区别 和 我注意到当我不使用引号时,您不能在密钥中使用。但这实际上有区别吗?如果是的话,哪个? 问题答案: 不,引号不会有任何区别(除非如您所述,除非您想使用不是有效JavaScript标识符的键)。 作为一个侧面说明,JSON数据交换格式确实需要标识周围的双引号(和它不会让单引号)。

  • 我正在尝试使用OpenCSV解析CSV文件。其中一列以YAML序列化格式存储数据,并被引用,因为其中可以包含逗号。它里面也有引号,所以它通过放两个引号来转义。我能够在Ruby中轻松解析这个文件,但使用OpenCSV我无法完全解析它。这是一个UTF-8编码的文件。 这是我的Java片段,它试图读取文件 这是此文件中的2行。第一行没有被正确解析,并且在处被拆分,因为我猜是转义双引号。

  • 我使用Jooq-3.1.0在Spring-4中为Oracle和Postgresql生成和执行动态查询。在一个场景中,我有一个分区表,我需要使用JOOQ查询它。我使用,其中是在查询生成方法中作为字符串接收的字符串,例如。(模式对于不同的数据库不同,并且在外部属性文件中配置)。JOOQ生成sql,但在表名周围使用双引号。如下所示的查询和错误 查询

  • 问题内容: 我正在浏览Alamofire的源代码,并在此源文件中发现了反引号名称的变量 但是,在使用变量的地方没有反引号。反引号的目的是什么? 问题答案: 根据Swift文档: 要将保留字用作标识符,请在其前后加上反引号。例如,class不是有效的标识符,但是是有效的。反引号不视为标识符的一部分;x和x具有相同的含义。 在您的示例中,是一个快速的保留关键字,这就是为什么需要反引号的原因。