多级json的格式和javascript的数据提取方法



很抱歉,但我不精通json。 我们目前使用单级json文件作为日期信息,每个旅游包一个文件。 这些通过 js 获取,然后处理并插入到网页上的适当位置。 我们想做的是将所有旅行日期信息以及一些其他详细信息合并到一个 json 文件中,该文件一旦获取就会在浏览器上缓存几个小时。 基本上最终会得到一个本地平面文件"数据库",其中包含所有供js访问的游览。

执行单级 json 相当简单,但将其组合成多个级别则更加艰巨。 我想知道: 1( 数据是否有特定的格式,如下所述? 2(如何使用JS从该格式中提取数据?

每个游览都由一个数字 ID 指定,并具有多个值。 所以第一级应该是一个或两个层次(这只是数据概念,而不是json代码(:

tours -> tour_id, price1, price2, price3, duration, level, dates
tours -> tour_id -> price1, price2, price3, duration, level, dates

日期值将有多个日期,每个日期具有多个值:

dates -> date1, date2, date3, date4, etc
each date has -> trip_code, start_date, end_date, price, spaces

基本功能是,当页面加载时,js将从页面中读取tour值,然后在json文件中找到合适的游览。一般值将由一个函数提取,并简单地插入到页面中,就像使用 innerHTML 一样。 日期值将由不同的函数用于构建字符串,然后将这些字符串同样插入到页面中。

当我阅读可用信息时,我发现有些人只使用大括号,有些人使用大括号和括号,各种提取建议等。我很感激对哪种格式/提取方法更可取的任何帮助。 通过可推测,我的意思是哪种格式/方法在浏览器上增加最少的工作量。 由于额外的大括号或括号而具有稍大的文件大小是可以的,如果它减少了 js 开销并加快了完成的页面。

虽然它可能对答案无关紧要,但 json 文件将由 PHP 构建并作为静态文件保存在服务器上。

您可以在表单中制作多级对象

multiLevel = { [tour_id]: yourOriginal1LevelObject}

要检索游览,您可以使用

const tour = multiLevel[tour_id]

或使用解构

const {tour_id: tour} = multiLevel

最新更新