繁体   English   中英

将字符串添加到逐字字符串文字

[英]Adding string to verbatim string literal

我正在尝试构造如下的原始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序列化器。

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

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

编辑:为此,您必须确保将要在输出中的花括号加倍(就像引号一样)。 另外,先$ ,然后@

而是使用Newtonsoft.JSON JObject()类的

dynamic myType = new JObject();
myType.name = "Elbow Grease";
myType.address = "someaddress";

Console.WriteLine(myType.ToString());

将生成JSON字符串为

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM