如何获取JsonConvert.SerializeObject将对象包装在{...}中

时间:2019-07-02 16:18:40

标签: c# json json.net

在我的类上调用JsonConvert.SerializeObject之后,生成的JSON如下所示:-

{
  "commands": [
    {
      "req": "login",
      "password": "1111"
    }
  ]
}

但是我需要它与附加的{}

看起来像这样
{
  "commands": [
    {
      "req": "login"
    },
    {
      "password": "1111"
    }
  ]
}

正在使用https://app.quicktype.io/#l=cs&r=json2csharp

生成代码

两者都是有效的Json,但我在调用需要它们的第三方API时需要大括号。

1 个答案:

答案 0 :(得分:2)

如果您像这样制作课程,该怎么办?

public class ApiRequest
{
    [JsonProperty("commands")]
    public List<Command> Commands { get; set; }

    public ApiRequest() 
    {
        Commands = new List<Command>();
    }

    public void Add(Command command)
    {
        Commands.Add(command);  
    }
}

public class Command : Dictionary<string, string>
{
    public Command(string key, string value) : base()
    {
        Add(key, value);
    }
}

然后您可以像这样创建JSON:

var req = new ApiRequest();
req.Add(new Command("req", "login"));
req.Add(new Command("password", "1111"));

string json = JsonConvert.SerializeObject(req, Formatting.Indented);

提琴:https://dotnetfiddle.net/kJD81u