将字典序列化为 json

Serialize dictionary to json

我有什么方法:

IExternalResponse<ReserveResponse> ReserveFreePlacement(IDictionary<int,int> ticketsInfo) {
    var request = new RestRequest("", Method.POST);
    request.AddJsonBody(
        new
        {
            command = "RESERVATION",
            categoryQuantityMap = JsonConvert.SerializeObject(ticketsInfo),
        });
    return GetResult<ReserveResponse>(request, RestClient, "Reservation"); }

请求是 RestSharp.RestRequest,ticketsInfo 是具有值的字典:

Key:12041, Value:1
Key:12040, Value:2

在命令 "AddJsonBody" 之后,我在 request.Parameters 中有 1 个参数

application/json={
  "command": "RESERVATION",
  "categoryQuantityMap": "{\"12041\":1,\"12040\":1}",
  "versionCode": "1.0"
} 

但我需要

application/json={
  "command": "RESERVATION",
  "categoryQuantityMap": {
    "12041":1,
    "12040":2
    },
  "versionCode": "1.0"
}

如何找到合适的?

所以,AddJsonBody方法序列化实现的问题。当我通过处理序列化对象然后通过处理添加正文请求时 - 一切都是正确的:

IExternalResponse<ReserveResponse> ReserveFreePlacement(IDictionary<int,int> ticketsInfo) 
{
    var jsonBody = JsonConvert.SerializeObject( new
    {
        command = "RESERVATION",
        categoryQuantityMap = ticketsInfo,
        versionCode = "1.0"
    });
    var request = new RestRequest("", Method.POST);
    request.AddParameter("application/json", jsonBody, ParameterType.RequestBody);
    return GetResult<ReserveResponse>(request, RestClient, "Reservation");
}