我在db。中有一个以分号字符串形式存储的类别列表。
我有一个kendo选择标记,我需要填充这些值。
select标签需要将值作为数组形式:
[{catText: "first category", catValue: "first category"},{catText: "second category", catValue: "second category"}...]
注意:text和value都包含相同的字符串。
我的JavaScript / jQuery是:
//define my category dataobject
function Cat(catValue,catText) {
this.catValue= catValue;
this.catText= catText;
}
// set value for msCategories
var vData = [];
var cats= '@Model.Categories';
alert(cats); //this returns "Alcohol; Vodka"
var cData = cats.split(";");
$.each(cData, function (index, value) {
var obj = new Cat(value, value);
vData.push(obj);
});
alert(vData); //this gives me [{object Object},{object Object}]
如何获得一个数组[{catText: "Alcohol", catValue: "Alcohol"},{catText: "Vodka", catValue: "Vodka"}]
答案 0 :(得分:3)
当您对一个对象数组运行alert()时,它将返回该项的类型,而不是字符串化的值。
如果您使用console.log( vData )
,您很可能会看到您期望的结构中的数据。
你可以尝试的其他事情是
alert( vData[0], vData[1], vData[2] );
如果你只需要调试一些东西
甚至
alert( JSON.stringify( vData ) );
因此,您很可能没有问题,只是您尝试查看信息的方式并不合适。
答案 1 :(得分:1)
所以你想要JSON(Javascript Object Notation),你可以用JSON.stringify
CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.ToLower().Replace("yyyy", "yy")

然后您可以看到您的数组包含您的预期,var vData = [{catText: "first category", catValue: "first category"},{catText: "second category", catValue: "second category"}]
document.write(JSON.stringify(vData));
仅尝试在每个项目上调用object.toString()
,以便它返回alert