我将(模拟)产品数据硬编码到 JSON 文件中,我用它在应用程序中生成“目录”页面。然而,最终的计划是允许用户通过 CMS 风格的管理面板添加新产品。
显然我需要这些数据是持久的。显而易见的选择是使用 MySQL 或其他数据库,但由于这是一个相当复杂的数据结构,有大量嵌套,我无法想象如何轻松实现这一点。我可以简单地将 JSON 存储在服务器上的文本文件中,但随后我就失去了操作它的能力,并且每次进行更改时都必须发送整个集合。话又说回来,只有当人们添加和删除产品时才会出现这种情况,所以也许情况不会那么糟糕。也许我可以使用 PHP 解码 JSON,对其进行操作,然后将其重新序列化为 JSON 并将其保存到文本文件中。
抱歉,我跑题了。您认为我最好的选择是什么?
{
currency: currency,
currencySymbol: CurrencySymbol(currency),
shoes: {
title: 'Shoes',
items:[
[
{
name: 'Light Shoes',
price: 99.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Dark Shoes',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Brown Shoes',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
}
],[
{
name: 'Gold Shoes',
price: 999.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Dark Shoes',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
},{
name: 'Brown Shoes',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/shoes/darkshoes.jpg'
}
]
]
},
dance: {
title: 'Dance Gear',
items: [
[
{
name: 'Cool Cap',
price: 99.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Baggy Pants',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Jacket',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
}
],[
{
name: 'T-Shirt',
price: 99.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Hip-Hip Hoodie',
price: 59.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
},{
name: 'Belt',
price: 5.99,
description: "Donec eu lacus vel sapien luctus fermentum. Nulla consequat viverra volutpat. Phasellus et sagittis mauris.",
imgUrl:'./catalogue/dance/dance.jpg'
}
]
]
}
}
最佳答案
存储带有 .json 扩展名的 json 对象。这里不需要文本文件,因此不需要一直努力发送正确的 header 。
对于持久性部分:在您的数据库表中,仅引用本地文件系统上的 json 文件以及您需要的其他信息(更新时间等)。
示例表可能如下所示:
documents(id:pk, file, created_at, updated_at)
(当然,您也可以将原始 json 字符串存储在表中,但使用不适合存储 json 的数据类型会遇到危险,因此无法保存所有数据)嗯>
但是,这种方法仅适用于需要使用关系数据库系统
<小时/>但是,更好的方法是使用文档数据库系统,例如 mongoDB评论里也推荐了这个。它绝对值得一看,但如果您有关系 dbms 背景,一开始可能会有点尴尬。
关于javascript - 在服务器上存储嵌套 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22966111/