【问题标题】:Transform Javascript code to JSON and vice versa将 Javascript 代码转换为 JSON,反之亦然
【发布时间】:2014-06-17 13:47:15
【问题描述】:

我正在做一个小项目,我将在其中使用 dgrid dojo,如果他是管理员或简单用户,则必须根据个人的个人资料自定义 dgrid。 dgrid 将从 REST 服务填充,我的想法不仅是填充 dgrid,还可以使用文本框、按钮和复选框对其进行自定义。

例如,这里是一个 dgrid 的代码,它有 2 列,其字段不能更改:

window.Grid= new StandardGrid({
    sort: "abbreviation",
    store: stateStore(),
    columns: {
           abbreviation: 'Abbreviation',
           name: 'Name'
    }
}, "MyGrid");

服务必须验证此人是否是管理员,如果是,则以 JSON 格式发送设置以向 dgrid 添加更多功能,方法是更改​​“列”:

[ editor({
    label: "Abbreviation",
    field: "abbreviation",
    editor: "text",
    editOn: "dblclick"
}),
editor({
    label: "Name",
    field: "name",
    editor: "text",
    editOn: "dblclick"
})]

我想以 json 格式发送此配置代码。 我想知道这是否可行,如果可行,如何? 谢谢

【问题讨论】:

    标签: javascript json dojo dgrid


    【解决方案1】:

    由于函数不是 JSON 的有效部分,您需要在 JSON 和 dgrid 列插件之间进行一些处理。例如,在editor 的情况下,您可以只测试每个对象是否存在editor 属性,如果找到,则在实际从JSON 创建列结构时应用editor 函数。

    【讨论】:

    • 我想到了这个解决方案,但我想知道这样做是否不会有安全方面的担忧?
    • 不应该有比不调用列插件更大的风险。当然,只要您仍在使用JSON.parsedojo/requesthandleAs: 'json' 将尽可能通过dojo/json 尝试这样做)。
    【解决方案2】:

    我不确定 Dojo。但是如果你想将一个 JS 对象转换为 JSON,那么简单:

    var jsonString = JSON.stringify(objectGoesHere);
    

    【讨论】:

    • 我认为问题更集中在 JSON 中没有函数这一事实。
    • 相信网格的参数化不是对象
    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2012-03-24
    • 2013-08-09
    • 1970-01-01
    • 2013-04-16
    • 2010-12-03
    • 2011-10-08
    相关资源
    最近更新 更多