Правильное использование JSON для простого описания меню ресторана - PullRequest
1 голос
/ 03 октября 2011

Я хотел бы знать, хорошо ли отформатирован этот пример сценария JSON, который я сделал, и имеет ли смысл размещать такую ​​информацию следующим образом.

{"menu": {
  "drinks": [
    {"coke": "20"},
    {"pepsi": "20"},
    {"water": "20"}
  ],
  "junk-food": [
    {"hamburger": "40"},
    {"fries": "20"},
    {"pizza": "20"}
  ]
}}

Я уже проверил сценарий с помощью http://jsonlint.com/, но все же я хотел бы немного больше, так как я очень новый.

Для некоторого контекста использования скрипта я собираюсь проанализировать скрипт с помощью Python.

Он предназначен для организации элементов графического интерфейса, которые будут выглядеть примерно так:

enter image description here

Во втором окне появится список, аналогичный первому, с соответствующим элементом и соответствующей ценой.

  • Это правильно, JSON?
  • Имеет ли эта структура смысл?

1 Ответ

4 голосов
/ 03 октября 2011

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"]
        }
    ]
}}

для экономии места вы можете сделать что-то подобное тоже

{"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"
    ]
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...