C# 在C中使用字典创建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"

请我需要使用字典创建一个JSON,如下所示

 {
    "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(格式化):