将C#对象列表解析为JS中的键值对

时间:2013-02-26 11:30:24

标签: c# javascript jquery json

我有一个JSON对象,构成网格的列模型属性。我想在网格中填充一个下拉列表,因为我有一个带有ID - 值对的对象列表。

网格模型采用以下格式的值:

values: { "be": "Belgium", "fr": "France", "uk": "Great-Britain", "nl": "Nederland" }

我的匿名对象结构如下:

List<Object> valueList = new List<Object>();
var item1 = new { ID = "M", Value = "Male" };
var item2 = new { ID = "F", Value = "Female" };
valueList.Add(item1);
valueList.Add(item2);

$.parseJSON之后的数组结构是:

    [
Object
ID: "M"
Value: "Male"
__proto__: Object
, 
Object
ID: "F"
Value: "Female"
__proto__: Object
]

编辑:

将此用于json转换器:

var jsonSerialiser = new JavaScriptSerializer();
json = jsonSerialiser.Serialize(model);
return json;

其中model是包含其他网格属性和值列表的列表。

如何从中构造JSON格式的数据,以便我有类似的结果?有没有正确的方法呢?或者我是否必须做一些类似于分裂和制作字符串的东西?

1 个答案:

答案 0 :(得分:7)

您可以使用字典:

Dictionary<string, string> valueList = new Dictionary<string, string>();
valueList.Add("M", "Male");
valueList.Add("F", "Female");

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(new { values: valueList });
return json;

这将序列化为:

{"values":{"M":"Male","F":"Female"}}