为JSON对象创建CRUD?

时间:2013-11-25 21:50:54

标签: javascript jquery json serialization

我是javascript开发的新手,我遇到了一个我认为已经解决但我不知道如何找到答案的问题。

假设我有一个JSON对象,如下所示:

// bagelList.json
{
    "description": "The bagel list. Who brings the bagels on what day.",
    "list": [
        {
            "date": "Nov 25",
            "name": "Cory"
        },
        {
            "date": "Nov 26",
            "name": "Jordan"
        }
    ]
}

我想在网页上显示此对象中的信息,但我想要巧妙地显示它 - 而不是直接打印JSON。我还想允许用户更新列表,添加新条目,修改描述等。

我可以像这样显示数据:

$( document ).ready(function() {

    $.getJSON('bagelList.json', function(bagelData) {

        var items = [];
        $.each( bagelData.list, function( index, bagelAssignment ) {
            items.push( "<tr><td contenteditable="true">"
                        + bagelAssignment.date + "</td><td>"
                        + bagelAssignment.name + "</td></tr>" );
        });

        $("tbody#schedule").append( items.join( "" ) );

    });

});

然而,由于嵌入在html中,所有数据现在都被混淆了一点。我可以编写一个解析器来遍历所有表条目,并在用户更新项目后重新创建原始JSON对象,但这看起来像一个kludge。

对数据建模的正确方法是什么,以便能够以吸引人的方式显示数据,但保留从对象读取和写入的能力?

我认为这个问题之前已经解决过很多次了,所以我不想在编写CRUD的过程中走得太远,只是为了发现我只需要做XYZ就可以了。

1 个答案:

答案 0 :(得分:2)

有jtable(http://www.jtable.org/Demo/Filteringhttps://github.com/hikalkan/jtable

等项目

但是我对此的看法 - 我认为在有些情况下你需要一个纯粹的CRUD操作表;通常它会更流畅,更特定于您的问题/域。 我会去Angular。有人还提到了backbone.js,但我认为它将是无缝的。

如果沿着棱角分明的路径走下去,我建议egghead,那里有很棒的视频。