如何使用字符串插值和逐字字符串一起创建JSON字符串文字

RBT*_*RBT 6 .net c# string string-interpolation verbatim-string

我正在尝试创建一个表示JSON对象数组的字符串文字,所以我想到使用字符串插值功能,如下面的代码所示:

    public static void MyMethod(string abc, int pqr)
    {
        string p = $"[{{\"Key\":\"{abc}\",\"Value\": {pqr}  }}]";
    }
Run Code Online (Sandbox Code Playgroud)

现在我想到使用逐字字符串,这样我就不必使用反斜杠来转义双引号.所以我通过这个答案来了解逐字字符串和字符串插值可以一起使用.所以我改变了我的代码如下:

public static void MyMethod(string abc, int pqr)
{
    string p = $@"[{{"Key":"{abc}","Value": {pqr} }}]";
}
Run Code Online (Sandbox Code Playgroud)

但它无法编译.谁能帮助我,如果有什么错误的,我使用,否则将能够使用C#字符串逐字功能逃脱在这种情况下双引号?

Ric*_*arg 7

最好的方法是使用JSON序列化程序,因为它们具有与转义字符和其他内容相关的内置处理.看到这里.

但是,如果我们只想通过此路径手动创建JSON字符串,则可以通过将内部双引号更改为单引号来解决此问题:

public static string MyMethod(string abc, int pqr)
{
   string p = $@"[{{'Key':'{ abc}','Value': {pqr} }}]";
   return p;
}
Run Code Online (Sandbox Code Playgroud)

  • 这不是有效的 JSON。单引号是有效的 Javascript,但不是 JSON。 (5认同)