【问题标题】:Java backend with JavaScript frontend - why JSON?Java 后端和 JavaScript 前端——为什么是 JSON?
【发布时间】:2019-11-20 00:13:22
【问题描述】:

我正在使用 Spring Boot Java 后端和 Javascript 前端。后端需要从数据库中获取数据并提供给前端。

谷歌上最新的热门文章为我提供了所有建议相同的教程:使用 Spring REST API 后端并通过 http get 将数据作为 JSON 提供给前端。

我不明白为什么这是最受欢迎的方法。 JSON 的想法是提供“人类可读的文本”(Wiki)。我的支持者需要什么?!

因此,在我的案例中生成的 JSON 接近 800kb,因为所有字段和值都是人类可读的。如果我更改结构并使用占位符值,大小将缩小到 100kb,而我的前端完全可以使用它。

但是这样做,我打破了使用 JSON 作为传输对象的整个想法。

那么,为什么这似乎是社区如此青睐的方法?有什么我错过的吗?您可能知道更好的方法还是我应该处理它?

【问题讨论】:

  • 你在做什么,发送整个数据库
  • 没关系,即使文件较小,如果大量用户访问我的网站,它也会扩大。关键是,如果我的前端不关心它,我为什么要选择人类可读的文件格式?
  • 它不需要是 JSON... 其他教程将显示 gPRC... 或使用 WebSockets 代替 HTTP

标签: java json spring-boot


【解决方案1】:

为什么选择 Json?

  1. 用 Javascript 处理 json 很简单(它具有内置支持)。

    1.1。实际上,几乎所有编程语言都有工具支持 json。

  2. 让消息向前和向后兼容 json 很简单。

  3. 由于 json 是文本,普通 HTTP 对其进行了很好的压缩,因此如果足够大,最终您最终会发送大约 10% 的有效负载。

  4. 当您需要进行故障排除时,可读性可让您的生活变得更简单。 (你有没有尝试对 protobuf 进行故障排除?)


必须是json吗?

没有。


现在,你没有问它,而是“有点”问它。不要将所有数据发送到页面,而是将数据分成块,页面需要加载什么以及页面稍后需要什么。如果你正确地平衡它,你可以从两个世界中受益:人类可读的格式和快速加载页面。

【讨论】:

    【解决方案2】:

    JSON 的理念是提供“人类可读的文本”(Wiki)。

    是的,但是……

    我会专注于 JavaScriptObjectNotation。例如。 the Mozilla docs on the subject:

    JavaScript Object Notation (JSON) 是一种基于文本的标准格式,用于表示基于 JavaScript 对象语法的结构化数据。

    简短的回答是:您可以免费获得一些东西。您可能对以下内容感兴趣:

    What is JSON and why would I use it

    Sending JSON from backend to frontend


    在数据大小方面:我很好奇您的 JSON 格式是什么,您可以通过更改为其他格式从 800kb 到 100kb。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-23
      • 2012-02-21
      • 1970-01-01
      • 2011-03-06
      • 2014-10-21
      • 2014-10-07
      • 1970-01-01
      • 2021-05-25
      相关资源
      最近更新 更多