我有一个字典 <string, string>
如果我 Json.Encode 这个我得到{"Apple":"Apples","Orange":"Oranges"}
我怎么能得到这个: -
[{ value: "Apples", key: "Apple" }, { value: "Oranges", key: "Orange"}]
最好使用 Newtonsoft.Json 或 jQuery
我有一个字典 <string, string>
如果我 Json.Encode 这个我得到{"Apple":"Apples","Orange":"Oranges"}
我怎么能得到这个: -
[{ value: "Apples", key: "Apple" }, { value: "Oranges", key: "Orange"}]
最好使用 Newtonsoft.Json 或 jQuery
在传递给 JSON 序列化程序之前将其转换为键值对列表:
JsonConvert.SerializeObject(new List<KeyValuePair<string,string>>(dictionary));
重申我的评论,将数据类型从 IEnumerable>(或 IDictionary)更改为 IList> 也会导致序列化“正确”工作,也就是将数据序列化为 JavaScript 数组。在我目前的情况下,我的 JavaScript 被隔离在 Razor 无法遵循的单独 .js 文件中,因此无法选择使用 JsonConvert.SerializeObject。
这里绝对是一个奇怪的功能。如果有人对 JSON 序列化为什么默认以这种方式做出反应有一些见解,那就太好了;错误还是故意的?