我将(模拟)产品数据硬编码到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'
}
]
]
}
}
答案 0 :(得分:2)
使用 .json 扩展名存储json对象。这里不需要文本文件,因此无需继续努力发送正确的标题。
对于持久性部分:在数据库表中,只引用本地文件系统上的json文件以及您需要的其他信息(更新时间等)。
示例表可能如下所示:
documents(id:pk, file, created_at, updated_at)
(当然你也可以将原始的json字符串存储在你的表中,但是使用不适合存储json的数据类型会遇到危险,因此无法保存所有数据)
然而,这种方法仅适用于需要使用关系数据库系统
但是,更好的方法是使用文档数据库系统,例如mongoDB,这也是评论中推荐的。这绝对值得一看,但如果你来自关系dbms背景,它起初可能有点尴尬。