代码之家  ›  专栏  ›  技术社区  ›  AutoTester213

如何在C中转义“\”字符串?

  •  0
  • AutoTester213  · 技术社区  · 6 年前

    我正在发出post请求,post请求返回此格式的字符串

    "\"1231231231323213\""
    

    我需要用这根绳子再打一个电话。

    当我这样做的时候

    var NewLocationId = response.Content;
    Logger.LogInfo($"LocationID : {NewLocationId}");
    

    我得到

    位置ID:“1231231231323213”

    但是当我调试它时, NewLocationId "\"1231231231323213\""

    当我在请求中使用newlocationid的值时,调用json的过程如下。

    {"locationId":"\"1231231231323213\""}
    

    我怎么逃 “1231231231323213\”“ "1231231231323213" ?

    编辑:

    var response = Call.PostNewLocation(SomeValue123, SomeValue1234, null, SomeValue);
    var NewLocationId = response.Content;
    Logger.LogInfo($"LocationID : {NewLocationId}");
    var responseDevice = Call.PostNewDevice(SomeValue, SomeValue22, SomeValue3, SomeValue1, NewLocationId);
    

    当我尝试使用上述调用的响应内容时,我将返回此字符串 “1231231231323213” 调试器显示 “1231231231323213\”“

    然后当我使用 新定位 在我的下一个调用中,JSON看起来像这样。

    {...,"locationId":"\"1231231231323213\"",...}
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Daniel Fuchs    6 年前

    使用 String.Trim() 删除字符串周围的其他引号。注意,这只适用于字符串开头或结尾的引号。

    NewLocationId = NewLocationId.Trim('\"');
    

    如果还需要删除字符串其余部分之间的引号,请使用 String.Replace("\"", "") :

    或者,如果总是相同的“结构”总是去掉第一个字符和最后一个字符,则执行速度可能更快:

    NewLocationId = NewLocationId.Substring(1, NewLocationId.Length - 2);
    
        2
  •  2
  •   D Stanley John Koerner    6 年前

    调试器只是向您显示实际的字符串值包含引号。如果你不 希望 要包含引号的值,可以使用 String.Replace 移除它们。如果你 想要他们,你什么都做不了。