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}""
}}";