最佳实践-JSON与JS对象

时间:2018-11-14 16:58:08

标签: javascript json angular

考虑此simple angular example并导航至question.service.ts

question.service.ts中的片段:

new DropdownQuestion({
        key: 'brave',
        label: 'Bravery Rating',
        options: [
          {key: 'solid',  value: 'Solid'},
          {key: 'great',  value: 'Great'},
          {key: 'good',   value: 'Good'},
          {key: 'unproven', value: 'Unproven'}
        ],
        order: 3
      })

替代以上(原始json):

{
       key: 'brave',
        label: 'Bravery Rating',
        options: [
          {key: 'solid',  value: 'Solid'},
          {key: 'great',  value: 'Great'},
          {key: 'good',   value: 'Good'},
          {key: 'unproven', value: 'Unproven'}
        ],
        order: 3
      }

我使用的不是上述原始json(如上所述),而是使用上述方法1。

我的论点不足以支持我的观点。但是我觉得,就可读性,可维护性和OOP而言,使用提供的JSON对象作为参数传递JS对象要比传递原始JSON更好。

我很难说服同事们同意我的方法。最好的方法实际上是什么?传递原始json真的比JS更好吗?或相反亦然?有其他替代方法吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

  • 首先,它们都是完全不相关的,因为第一个选项期望某些特定格式为input,但是第二个选项是自由数据结构,可以将input作为{{1 }}。

  • 第二,我猜想,您要寻找的是强制控件具有非常特定的结构,而不是在其中包装某些内容。您的DropdownQuestion类应该看起来像-

    DropdownQuestion

class DropdownQuestion implements Control{ public key; public label; public order; public options =[]; } 是所有Control都需要实现的通用接口。