Javascript数组:将元素从字符串更改为对象

时间:2013-05-14 08:19:05

标签: javascript jquery arrays json

我正在使用ParamQuery JavaScript库(ParamQuery Website)来构建JavaScript网格。

使用JQuery,我使用Ajax向我的服务发出请求,重新调整JSON数据。然后我遍历我的JSON数据并将其分配给一个数组。我的问题是元素是字符串,但我认为它们需要是一个对象数组。

<script type="text/javascript">
    $(document).ready(function () {
        var DataArray = [];

        $.ajax({
            url: "http://wks52025:82/WcfDataService.svc/GetNotes()?$format=json",
            type: "get",
            datatype: "json",
            success: function (data) {
                $.each(data.d, function (i, item) {
                    DataArray[i] = "[" + item.NotesTitle.trim() + "," + item.NotesText.trim() + "]";
                })

                for (var i = 0; i < DataArray.length; i++) {
                    //alert(DataArray[i]);
                    //Do something
                }

                // GRID LOGIC HERE
                var obj = { width: 800, height: 400, title: "Notes" };
                obj.colModel = [
                    { title: "NotesTitle", width: 500, dataType: "string" },
                    { title: "NotesText", width: 500, dataType: "string" } 
                ];
                obj.dataModel = { data: DataArray }; // Data Array goes here
                $("#grid_array").pqGrid(obj);
            }
        });    
    });
</script>

我在VS中附加了我的Watch选项卡的屏幕截图,以及调试后网格呈现的截图。

Visual studio watch

My Grid

This is the example code

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果问题只是将其转换为对象数组,请看一下这一行:

$.each(data.d, function (i, item) {
  DataArray[i] = { NotesTitle: item.NotesTitle.trim(), NotesText:item.NotesText.trim() };
})

<强>更新 看一下这个例子,你需要一个数组数组

$.each(data.d, function (i, item) {
  DataArray[i] = [  item.NotesTitle.trim(), item.NotesText.trim() ];
})