将字典序列化为(键值对的)数组 [英] Serialize dictionary as array (of key value pairs)

查看:52
本文介绍了将字典序列化为(键值对的)数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Json.Net通常将Dictionary<k,v>序列化为一个集合;

Json.Net typically serializes a Dictionary<k,v> into a collection;

"MyDict": {
  "Apples": {
    "Taste": 1341181398,
    "Title": "Granny Smith",
  },
  "Oranges": {
    "Taste": 9999999999,
    "Title": "Coxes Pippin",
  },
 }

哪个很棒.从环顾四周看来,这似乎是大多数人想要的.但是,在这种情况下,我想在我的Dictionary<k,v>和Array格式之间进行序列化;

Which is great. And from looking around on SO it seems to be what most people want. However, in this particular case, I want to serialize between my Dictionary<k,v> and the Array format instead;

"MyDict": [
    "k": "Apples",
    "v": {
        "Taste": 1341181398,
        "Title": "Granny Smith",
    }
  },
    "k:": "Oranges",
    "v:": {
        "Taste": 9999999999,
        "Title": "Coxes Pippin",
    }
  },
]

是否有一种简单的方法可以对我现有的字段类型执行此操作?例如,我可以注释一个属性吗?

Is there an easy way to do this with my existing field type? Is there an attribute I can annotate for instance?

推荐答案

啊,事实证明这很简单.我的Dictionary<k,v>已被子类化,我发现可以用[JsonArrayAttribute]对其进行注释.这正是我需要的格式;

Ah, it turns out this is as straightforward as I'd hoped. My Dictionary<k,v> is subclassed already and I found that I can annotate it with [JsonArrayAttribute]. That gives me exactly the format I need;

"MyDict": [
  {
    "Key": "Apples",
    "Value": {
        "Taste": 1341181398,
        "Title": "Granny Smith",
    }
  },
  {
    "Key:": "Oranges",
    "Value:": {
        "Taste": 9999999999,
        "Title": "Coxes Pippin",
    }
  },
]

这篇关于将字典序列化为(键值对的)数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆