是否存在已接受或正在出现的JSON表单和字段定义格式



我最近有理由放弃几个不相关的框架,从头开始。在一种情况下,Javascript驱动表单UI,而在另一种情况中,Java Swing也是如此。我意识到我可以制作一个简单的JSON对象,定义从字段到事件绑定的UI元素。

在我深入兔子洞之前,我开始想:有没有人见过这种东西的新兴或现有标准

下面是我踢球的一种味道。我正在使用JSON对象来定义Swing UI布局以及(单独)面向web的JavaScript生成的web表单。

这两个变量源于我的构建,最初是一个简单的网格控件,在我认为也有一个表单会很好之前,我需要字段。当然,它可以折叠成一个JSON结构。

var app = {
        forms: form1,
        bindings: [],
        layout:[{
            width: 400,
            height: 300,
            bgcolor: '#fefefe',
            color: 'black'
        }]
    }

    var form1 = {
        "formfield1": {
            itype: "text",
            tag: "input",
            iclass: "frminput",
            defaultval: "text input",
            label: "Text Value 1",
            validation: '/[a-z][A-Z][0-9]/',
            error: "No special characters allowed - only numbers or letters for this input",
            bindings: [{
                ievent: 'click',
                fx: function(){
                    validateTest(this);
                }
            },{
                ievent: 'blur',
                fx: function(){
                    blurTest(this);
                }
            }]
        },
        "formfield2": {
            itype: "select",
            tag: "select",
            iclass: "frminput",
            defaultval: "apples",
            label: "Test Select",
            options: [["apples","Apples"], ["oranges","Oranges"], ["peaches","Peaches"]]
        },
        "formfield3": {
            itype: "date",
            tag: "input",
            iclass: "date",
            label: "Test Date",
            defaultval: new Date()
        },
        "formfield4": {
            itype: "text",
            tag: "input",
            iclass: "frminput",
            label: "Text field 2",
            defaultval: "text input other"
        },
        "objectproperty": {
            itype: "button",
            tag: "button",
            iclass: "btn btn-small",
            label: "test magnitude button",
            defaultval: "",
            bindings: [{
                ievent: 'click',
                fx: function(){
                    buttonAction(this);
                }
            }]
        }
    };

我最想发现的是,其他人已经对此投入了更多的思考。

这篇文章的第二好结果是对什么是最佳实践提出一些建议。

目标是拥有一个相当不可知的实现,它可以在未来移植到其他平台,或者提供不同系统的轻松集成。

更新:很好地讨论了这个问题:标准JSON API响应格式?关于各种基于JSON的对象和实现的新兴和建议的标准。然而,大部分内容都集中在AJAX的使用上。这个问题仍然是一个很好的交叉参考。

Angular Formly就是这样一项工作。

我继续研究这个问题,但至少找到了一个答案。

GNome建议将Clutterscript作为一种使用JSON定义用户界面的解决方案。https://developer.gnome.org/clutter-cookbook/stable/script-ui.html

我会把我发现的任何类似的东西添加到这个答案中。clutterscript解决方案不是最佳的,因为它在JSON表示法中有一些特定于框架的项和标记。我的观点是,JSON表示法对于实现者来说应该有些抽象。实现者应该决定如何处理JSON对象中包含的UI描述。

相关内容

  • 没有找到相关文章

最新更新