gpt4 book ai didi

javascript - 表示 JSON 的最佳方式,它的数组中的每个元素都有重复键

转载 作者:行者123 更新时间:2023-11-30 16:02:22 25 4
gpt4 key购买 nike

我正在构建一个具有多个地址的 JSON。我担心 JSON 大小可能会变得太大,并会成为浏览器和 JS 解析期间的瓶颈。正如人们所看到的,不同的键,即。 “ID”、“FirmName”、“Address1”、“Address2”、“City”、“State”、“Zip5”、“Zip4”对于每个地址都必须重复,这实际上会大大增加 json 的大小。

  • 有什么方法可以消除在 JSON 中必须具有这些键但每个地址具有这些值的需要?如果我必须将“ID”、“公司名称”等的值表示为数组 [Ex: ["0","firmname","address1here",..] 我应该关心值的顺序吗?

  • 如果我将它们表示为值数组(而不是多个键值对),解析会变得模糊吗?

  • 如果我选择直接将它表示为一个值数组,它会是一个“好的”JSON 结构吗(因为我将不得不放弃可读性)?

      "Address": [
    {
    "-ID": "0",
    "FirmName": "firmname",
    "Address1": "address1here",
    "Address2": "13 infinite loop",
    "City": "new york",
    "State": "NY",
    "Zip5": "zip5here",
    "Zip4": "zip4here"
    },
    {
    "-ID": "1",
    "FirmName": "firmhere",
    "Address1": "address1here",
    "Address2": "1 Smith Ct ",
    "City": "San Predo",
    "State": "CA",
    "Zip5": "ziphere",
    "Zip4": "ziphere1"
    },
    {
    "-ID": "1",
    "FirmName": "firmhere",
    "Address1": "address1here",
    "Address2": "12 John Rd ",
    "City": "Newark",
    "State": "PA",
    "Zip5": "ziphere",
    "Zip4": "ziphere1"
    }
    ]

感谢您的投入。

最佳答案

首先,大型 JSON 对象绝对可以 crash the browser ,但我们正在谈论大对象。 [有关跨浏览器性能的有用分割,请参阅链接。]因此,首先,根据此数据和一些实际测试,您应该确定您的对象是否太大。 (因为如果不是太大,何必呢?)

现在,让我们假设您确实通过将数据表示为数组来体验重要的性能提升。这是真实的生活;你有局限性;你放弃了性能/空间的可读性。如果您是唯一需要处理 JSON 的人:“可读性”由您定义,那么此更改绝对可以(我的意思是,您还打算做什么?)。 (但是,如果相关,应咨询您的同事和/或 API 用户的意见*。)

我建议向您的 JSON 对象添加一个属性,该属性按顺序在数组中表示您的键:例如,

dataKey: ["ID","FirmName","Address1","Address2"]

...等等

然后,当你解析你的对象时,你可以添加一个包装函数来请求,比如说,ith<​​ 'firmName`:

data.fetch(i, "firmName")

并且该函数可以使用此数组来获取数据,而无需将键顺序的知识硬编码到另一端的代码中。

这使您的对象能够 self 记录,显然您应该在您的官方文档中使您的架构非常明显。

希望这对您有所帮助!

*如果这对您的用户群不起作用,我建议将对象分解为 block :记录 1 - 50、51 - 100 等。这就是网络应用程序处理大量实际数据的方式生活。

关于javascript - 表示 JSON 的最佳方式,它的数组中的每个元素都有重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com