正确使用 JSON 进行简单的餐厅菜单描述

Tru*_*ufa 2 javascript validation encoding json

我想知道我制作的这个 JSON 脚本示例是否格式正确,以及这样放置信息是否有意义。

{"menu": {
  "drinks": [
    {"coke": "20"},
    {"pepsi": "20"},
    {"water": "20"}
  ],
  "junk-food": [
    {"hamburger": "40"},
    {"fries": "20"},
    {"pizza": "20"}
  ]
}}
Run Code Online (Sandbox Code Playgroud)

我已经使用http://jsonlint.com/验证了脚本,但由于我是新手,我仍然想要更多。

对于脚本使用的一些上下文,我将使用 Python 解析脚本。

它旨在组织 GUI 的元素,这些元素或多或少是这样的:

在此处输入图片说明

在第二个窗口中,将出现一个与第一个类似的列表框,其中包含相应的项目和相应的价格。

  • 它是正确的 JSON 吗?
  • 这种结构有意义吗?

sis*_*onb 5

JSON 是正确的。尽管该结构没有太多语义意义。我更改了结构,使其具有更多意义,并且在添加属性时更易于管理。

{"menu": {
    "items": [
        {
            "name":"coke",
            "qty": 20,
            "category":"drinks",
            "sizes":["small","large"]
        },
        {
            "name":"pepsi",
            "qty": 20,
            "category":"drinks",
            "sizes":["small","large"]
        },
        {
            "name":"water",
            "qty": 20,
            "category":"drinks",
            "sizes":["small","large"]
        },
        {
            "name":"hamburger",
            "qty": 40,
            "category":"junk food",
            "sizes":["small","large"]
        },
        {
            "name":"fries",
            "qty": 20,
            "category":"junk food",
            "sizes":["small","large"]
        },
        {
            "name":"pizza",
            "qty": 20,
            "category":"junk food",
            "sizes":["small","large"]
        }
    ]
}}
Run Code Online (Sandbox Code Playgroud)

为了节省空间,你也可以做这样的事情,

{"menu": {
    "items": [
        {
            "name":"coke",
            "qty": 20,
            "category":0,
            "sizes":["small","large"]
        },
        {
            "name":"pepsi",
            "qty": 20,
            "category":0,
            "sizes":["small","large"]
        },
        {
            "name":"water",
            "qty": 20,
            "category":0,
            "sizes":["small","large"]
        },
        {
            "name":"hamburger",
            "qty": 40,
            "category":1,
            "sizes":["small","large"]
        },
        {
            "name":"fries",
            "qty": 20,
            "category":1,
            "sizes":["small","large"]
        },
        {
            "name":"pizza",
            "qty": 20,
            "category":1,
            "sizes":["small","large"]
        }
    ],
    "categories":[
        "drinks",
        "junk food"
    ]
}}
Run Code Online (Sandbox Code Playgroud)