2016-08-24 204 views
0

我想,如下构建原始json字符串发送出去的HTTP请求添加字符串逐字字符串

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

而是一个具有名称和地址值硬编码我希望从下面提供给他们的变量

string name = "someName"; 
string address = "someAddress"; 

但是下面不起作用。任何想法 ?

var requestContent = @"{ 
         ""name"": \" + name \", 
         ""address"": \" + address \" 
    }"; 
+0

为什么不使用JSON序列化程序? – Scott

回答

5

正确的语法是:

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

或者,你可以使用string.Format

var requestContent = string.Format(@"{ 
    ""name"": ""{0}"", 
    ""address"": ""{1}"" 
}", name, address); 

或者你可以使用一个实际的JSON序列。

2

而是使用Newtonsoft.JSON JObject()

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

Console.WriteLine(myType.ToString()); 

会生成JSON字符串作为

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

您可以用插一起使用逐字字符串,以及:

var requestContent = [email protected]"{{ 
    ""name"": ""{name}"", 
    ""address"": ""{address}"" 
}}"; 

编辑:对于这为了工作,你必须确保输出中需要的花括号加倍(就像引号一样)。还有,第一个$,然后是@