Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向逐字字符串文字添加字符串_C#_Json_String Literals_Verbatim String - Fatal编程技术网

C# 向逐字字符串文字添加字符串

C# 向逐字字符串文字添加字符串,c#,json,string-literals,verbatim-string,C#,Json,String Literals,Verbatim String,我正在尝试构建一个原始的json字符串,如下所示,以在http请求中发送它 var requestContent = @"{ ""name"": ""somename"", ""address"": ""someaddress"" }"; 我希望从下面的变量中提供它们,而不是硬编码名称和地址值 string name = "someName"; string address = "someAddress"; 但下

我正在尝试构建一个原始的
json
字符串,如下所示,以在http请求中发送它

var requestContent = @"{
                    ""name"": ""somename"",
                    ""address"": ""someaddress""
}";
我希望从下面的变量中提供它们,而不是硬编码名称和地址值

string name = "someName";
string address = "someAddress";
但下面的方法不起作用。有什么想法吗

var requestContent = @"{
                        ""name"": \" + name \",
                        ""address"": \" + address \"
    }";
正确的语法是:

var requestContent = @"{
    ""name"": """ + name + @""",
    ""address"": """ + address + @"""
}";
或者,您可以使用
string.Format

var requestContent = string.Format(@"{
    ""name"": ""{0}"",
    ""address"": ""{1}""
}", name, address);
或者您可以使用实际的JSON序列化程序。

使用like

将生成JSON字符串作为

 {
  "name": "Elbow Grease",
  "address": "someaddress"
 }

您还可以将逐字记录字符串与插值一起使用:

var requestContent = $@"{{
    ""name"": ""{name}"",
    ""address"": ""{address}""
}}";

编辑:要使其生效,您必须确保输出中所需的花括号加倍(就像引号一样)。另外,首先是
$
,然后是
@

为什么不使用JSON序列化程序呢?我永远不会想到这一点。谢谢。我花了***天寻找这个答案,非常感谢:)
var requestContent = $@"{{
    ""name"": ""{name}"",
    ""address"": ""{address}""
}}";