JSON将字典转换为键值对列表

时间:2012-08-08 01:13:17

标签: json

我有一个字典< string,string>

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

我如何才能做到: -

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

最好使用Newtonsoft.Json或jQuery

2 个答案:

答案 0 :(得分:4)

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

JsonConvert.SerializeObject(new List<KeyValuePair<string,string>>(dictionary));

答案 1 :(得分:1)

重申我的评论,从IEnumerable&gt;更改数据类型(或IDictionary)到IList&gt;也将使序列化正常工作&#34; a.k.a.将数据序列化为JavaScript数组。在我目前的情况下,我的JavaScript被隔离在一个单独的.js文件中,Razor无法遵循,因此使用JsonConvert.SerializeObject不是一个选项。

这里绝对是一个奇怪的功能。如果有人对JSON序列化默认情况下的反应方式有所了解,那将会很棒。 bug还是故意的?