Json Object正在开发中?它是在前端还是后端决定的?

时间:2015-07-11 05:42:52

标签: json web frontend backend web-frontend

我正在开发web-app,其中从后端获取JSON后生成布局。但是从后端收到的对象非常复杂,需要在对象周围循环很多次才能获得布局。

将数据发布到后端时也是如此。

我的感觉是,如果我们按照前端布局生成JSON对象以发布数据,即使后端的对象结构将被更改,布局生成也不需要那些额外的循环。

json对象总是在后端提供,还是应该根据前端?

例如后端正在提供

[
  {
    "keyid": "value",
    "attr1": "value1",
    "attr2": "value2"
  },
  {
    "keyid": "value",
    "attr3": "value3",
    "attr4": "value4"
  }
]

但前端很容易以下面的格式接收和发送对象:

{
    "keyid": "value",
    "attr": {
        "attr1": "value1",
        "attr2": "value2",
        "attr3": "value3",
        "attr4": "value4"
    }
}

2 个答案:

答案 0 :(得分:4)

很好的问题,虽然它可能会被关闭,而且#34;太广泛"。

通常,后端负责持久化数据,执行业务逻辑,准备和接受来自前端的数据包,理想的是前端可以将自己限制在其前端。角色,主要用于显示数据,管理导航和处理用户交互,执行任何预处理和操作是完成这些事情所必需的。

如果后端"做得不够",那么你会看到前端需要发出太多的数据请求才能获取所需的数据,这相当于"加入& #34;组合和关联数据,以及执行业务逻辑。这会减慢前端的速度并使其变得更加复杂,并在后端和前端传播业务逻辑。

另一方面,如果后端"做太多",并计算并提供所有内容,只需将其填充到某些HTML模板中,结果就是它结束了过于依赖特定的前端设计,这意味着变更需要对双方进行太多修改。

因此,人们试图找到一个中庸之道。后端应该检索所有必要的数据,关联和操纵它,并执行业务逻辑。它提供了一组相对抽象但充实的数据对象,然后前端可以为UI准备和操作。绘制线的位置没有严格的规则。

例如,分页可以被视为" UI"问题,并且可以由大多数客户端框架轻松处理,但如果有数百或数千个对象,性能考虑可能要求在服务器上处理此问题。排序相同。

考虑计算购物车中商品的总价。前端可以很容易地实现这种业务逻辑,但可能会有一些规则,如批量折扣或货币转换,最好在后端处理。当然,如果要在服务器上进行计算,则每次将项目添加到购物车时需要再次往返服务器,以便重新计算总数。往返行程相对便宜,但在某些情况下,性能问题可能导致人们想要在客户端上执行此操作以避免往返。

在一天结束时,这是一组设计选择。当然,后端API经常被冻结"而且前端人员只需要处理他们所得到的东西。

答案 1 :(得分:1)

我认为后端和前端有两种不同版本的JSON对象。两者都是一样的。它的区别仅在于您如何访问它以及您使用的方法。

您可以在http://json.org/

上找到相同的各种实现