我可以将 JSON 应用到当前的 gridster 列表吗?

Can i apply JSON to current gridster list?

我有一个从服务器获得的已生成数据的列表。 (我在里面生成了一些小部件 li

<div class='gridster'>
<ul>
<li>data item 1</li>
<li>data item 2</li>
<li>data item 3</li>
</ul>
</div>

我的JSON例如:

[{"col":1,"row":1,"size_x":3,"size_y":2},{"col":4,"row":1,"size_x":3,"size_y":2},{"col":1,"row":3,"size_x":6,"size_y":2}]

在 gridster 演示中,我们使用此代码应用来自 JSON

的大小和位置
$('.js-seralize').on('click', function () {
    gridster.remove_all_widgets();
    $.each(serialization, function () {
        gridster.add_widget('<li />', this.size_x, this.size_y, this.col, this.row);
    });
});

在这种情况下,我们使用 gridster.remove_all_widgets();,这对我来说是个问题,我需要将我的数据项保存在某个地方,然后再将它们输出回来。

在不使用 remove_all_widgets() 函数的情况下将 JSON 应用于当前列表的最佳解决方案是什么?

UPD:我从 asp mvc 应用程序生成我的列表,我想添加大小和位置以在客户端列出。对我来说,它看起来像:$('gridster ul').apply(jsonString);

要将 JSON 应用于已存在的列表,我使用了以下代码:

 var CurrentGridState = `[{"col":1,"row":3,"size_x":3,"size_y":2},{"col":4,"row":3,"size_x":3,"size_y":2},{"col":1,"row":1,"size_x":6,"size_y":2}]`;


 $(function () { //DOM Ready
        var json = JSON.parse(CurrentGridState);
        $.each($('.gridster ul li'), function (item, value) {
            console.log(json[item]['col']);
            $(value).attr("data-col",json[item]['col']);
            $(value).attr("data-row",json[item]['row']);
            $(value).attr("data-sizex",json[item]['size_x']);
            $(value).attr("data-sizey",json[item]['size_y']);
        });

    $(window).trigger('resize');
       gridster =  $(".gridster ul").gridster({
            widget_margins: [10, 10],
           widget_base_dimensions: [140, 140],
           max_cols: 10,
           max_rows: 25,
            draggable: {
                stop: function (e, ui, $widget) {
                    //alert('drag!');
                }
            },
            resize: {
                stop: function (e, ui, $widget) {
                    $(window).trigger('resize');
                    serializeCurrentState();
                },
                enabled: true
            },
        }).data('gridster');
    });