C# 在C中使用字典创建JSON#
请我需要使用字典创建一个JSON,如下所示C# 在C中使用字典创建JSON#,c#,asp.net,json,.net-core,C#,Asp.net,Json,.net Core,请我需要使用字典创建一个JSON,如下所示 { "amount": "string", "currency": "string", "externalId": "string", "payer": { "partyIdType": "MSISDN", "partyId": "string" }, "payerMessage": "string", "payeeNote": "string"
{
"amount": "string",
"currency": "string",
"externalId": "string",
"payer": {
"partyIdType": "MSISDN",
"partyId": "string"
},
"payerMessage": "string",
"payeeNote": "string"
}
下面的代码就是我用来实现这一点的代码,但它并没有完全按照我想要的方式实现。
谁能帮我一下,看看我哪里出了问题,这样我就可以做出必要的改变。非常感谢你
Dictionary<string, string> body = new Dictionary<string, string>
{
{"partyIdType","MSISDN"},
{"partyId","string"}
};
Dictionary<string, string> newbody = new Dictionary<string, string>
{
{"amount","string"},
{"currency","string"},
{"externalId","string"},
{"payer",DictionaryToString(body)},
{"payerMessage", "string"},
{"payeeNote","string"}
};
string data = JsonConvert.SerializeObject(newbody);
StringContent content = new StringContent(data.ToString(), Encoding.UTF8, "application/json");
HttpResponseMessage httpResponse = await client.PostAsync(uriRequest, content);
protected string DictionaryToString(Dictionary<string, string> dictionary)
{
string dictionaryString = "{";
foreach (KeyValuePair<string, string> keyValues in dictionary)
{
dictionaryString += keyValues.Key + " : " + keyValues.Value + ", ";
}
return dictionaryString.TrimEnd(',', ' ') + "}";
}
Dictionary body=新字典
{
{“partyIdType”,“MSISDN”},
{“partyId”,“string”}
};
Dictionary newbody=新字典
{
{“金额”,“字符串”},
{“货币”,“字符串”},
{“externalId”,“string”},
{“付款人”,字符串(正文)},
{“payerMessage”,“string”},
{“payenote”,“string”}
};
string data=JsonConvert.SerializeObject(newbody);
StringContent=新的StringContent(data.ToString(),Encoding.UTF8,“application/json”);
HttpResponseMessage httpResponse=等待客户端.PostAsync(uriRequest,content);
受保护的字符串字典YTOSTRING(字典字典)
{
字符串字典字符串=“{”;
foreach(字典中的KeyValuePair keyValues)
{
dictionaryString+=keyValues.Key+“:“+keyValues.Value+”,“;
}
返回dictionaryString.TrimEnd(',','')+“}”;
}
我不建议您自己生成JSON代码(就像您在字典中所做的那样)
相反,您可以尝试这样声明字典:
Dictionary<string, object> body = new Dictionary<string, object>()
{
{"amount", "string"},
{"currency", "string"},
{"externalId", "string"},
{"payer", new Dictionary<string, string>()
{
{"partyIdType","MSISDN"},
{"partyId","string"}
}},
{"payerMessage", "string"},
{"payeeNote", "string"}
};
string data = JsonConvert.SerializeObject(body);
Dictionary body=newdictionary()
{
{“金额”,“字符串”},
{“货币”,“字符串”},
{“externalId”,“string”},
{“付款人”,新词典()
{
{“partyIdType”,“MSISDN”},
{“partyId”,“string”}
}},
{“payerMessage”,“string”},
{“payenote”,“string”}
};
string data=JsonConvert.SerializeObject(主体);
如果对字典使用object
,则可以输入任何类型的字典,包括其他字典,这些字典将被正确序列化。Test:Output(格式化):