2016-08-24 191 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}"" 
}}"; 

編輯:對於這爲了工作,你必須確保輸出中需要的花括號加倍(就像引號一樣)。還有,第一個$,然後是@