C# 将变量传递到JSON请求体的逐字字符串文本中
对于C#来说相当陌生,我正在尝试使用逐字字符串文本构建一个干净的多行字符串,但也尝试向它传递变量 说它的格式不正确,所以看到我在这里做错了什么,因为这个格式和我在其他so问题中看到的格式很接近C# 将变量传递到JSON请求体的逐字字符串文本中,c#,json,C#,Json,对于C#来说相当陌生,我正在尝试使用逐字字符串文本构建一个干净的多行字符串,但也尝试向它传递变量 说它的格式不正确,所以看到我在这里做错了什么,因为这个格式和我在其他so问题中看到的格式很接近 var bodyJson =string.Format(@"{ ""ConsultingProject@odata.bind"": ""/consultingprojectses({0})"",
var bodyJson =string.Format(@"{
""ConsultingProject@odata.bind"": ""/consultingprojectses({0})"",
""buyer_product_id@odata.bind"": ""products(f4b6b505-99df-e711-8108-c4346bdc3201)"",
""BuyerLookupId@odata.bind"": ""/contacts({1})"",
""new_buyer_account_id@odata.bind"": ""/accounts({2})""
}", projectRecord.consultingprojectsid, contact, projectRecord.account_value);
或者最好是:
var bodyJson =string.Format(@"{
'ConsultingProject@odata.bind': '/consultingprojectses({0})',
'buyer_product_id@odata.bind': 'products(f4b6b505-99df-e711-8108-c4346bdc3201)',
'BuyerLookupId@odata.bind': '/contacts({1})',
'tnew_buyer_account_id@odata.bind': '/accounts({2})'
}", projectRecord.consultingprojectsid, contact, projectRecord.account_value);
创建一个对象并使用序列化程序构造Json:
var obj = new
{
Key1 = "value1",
Key2 = "value2"
};
var json = JsonConvert.SerializeObject(obj);
JSON是来自模型或对象的序列化数据;不要用一个特殊的字符串来组合一个特殊的字符串,而要使用一个序列化,你必须转义
{
和}
。请不要这样做。创建一个对象并使用序列化程序!您可能想考虑使用<代码> JObject <代码>来创建必要的结构和值,而不是试图逃避和所有这些;例如,从技术上讲,JSON是无效的,因为字符串必须使用双引号,而不是单引号。为什么不试着通过放置一些像bodyJson.replace(“{0}”,“myvalue”)