字典C#中的Json格式

时间:2018-02-06 21:25:14

标签: c# json http dictionary json.net

你好,我有一本我正在使用的字典。

Dictionary<string, string> myProperties

我正在尝试将其格式化为JSON并且遇到困难。我需要它像这样:

    {
     "properties": [
      {
        "property": "firstname",
        "value": "John"
      },
      {
        "property": "lastname",
        "value": "Doe"
      },
      {
        "property": "country",
        "value": "united states"
      }
    ]
  }

目前我正在使用Json.NET来序列化字典,但这给了我:

{
  "country": "united states",
  "firstname": "John",
  "lastname": "Doe"
}

任何人都可以帮助我将其格式化为我需要的内容。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

你通过将.Select()的结果发送到包含在anon类中的json序列化程序来实现这一点,但如果你打算构建更大的东西,我建议你使用真正的类。

JsonConvert.SerializeObject(
  new {properties = myProperties.Select(kv => new { property = kv.Key, value = kv.Value})}
  ,Formatting.Indented);

这会给你

{
  "properties": [
    {
      "property": "firstname",
      "value": "John"
    },
    {
      "property": "lastname",
      "value": "Doe"
    },
    {
      "property": "country",
      "value": "united states"
    }
  ]
} 

答案 1 :(得分:0)

以N0b1ts为基础回答:

JsonConvert.SerializeObject(new { properties = myProperties.Select(kvp => new { property = kvp.Key, value = kvp.Value }).ToList() }, Formatting.Indented);