2

我有一个字典 <string, string>

如果我 Json.Encode 这个我得到{"Apple":"Apples","Orange":"Oranges"}

我怎么能得到这个: -

[{ value: "Apples", key: "Apple" }, { value: "Oranges", key: "Orange"}]

最好使用 Newtonsoft.Json 或 jQuery

4

2 回答 2

4

在传递给 JSON 序列化程序之前将其转换为键值对列表:

JsonConvert.SerializeObject(new List<KeyValuePair<string,string>>(dictionary));
于 2012-08-08T01:21:32.087 回答
1

重申我的评论,将数据类型从 IEnumerable>(或 IDictionary)更改为 IList> 也会导致序列化“正确”工作,也就是将数据序列化为 JavaScript 数组。在我目前的情况下,我的 JavaScript 被隔离在 Razor 无法遵循的单独 .js 文件中,因此无法选择使用 JsonConvert.SerializeObject。

这里绝对是一个奇怪的功能。如果有人对 JSON 序列化为什么默认以这种方式做出反应有一些见解,那就太好了;错误还是故意的?

于 2012-09-12T17:15:41.750 回答