Как выбрать структуру JSON для данных?

0

В этом случае первая переменная всегда является идентификатором, вторая переменная всегда является номером OCR, а третьим номером всегда является сумма. Тогда было бы все равно, чтобы сделать так:

{
    "Transactions": [
        "23/2/2014 @ 16:48:8",
        [
            [
                "ID",
                "1"
            ],
            [
                "OCR",
                "123456789"
            ],
            [
                "Amount",
                "100"
            ]
        ],
        [
            [
                "ID",
                "2"
            ],
            [
                "OCR",
                "987654321"
            ],
            [
                "Amount",
                "20"
            ]
        ]
    ]
}

Или эквивалентный ввод только с входными данными, так как мы знаем, что индекс будет одинаковым для разных значений:

{
    "Transactions": [
        "23/2/2014 @ 16:48:8",
        [
            [
                "1"
            ],
            [
                "123456789"
            ],
            [
                "100"
            ]
        ],
        [
            [
                "2"
            ],
            [
                "987654321"
            ],
            [
                "20"
            ]
        ]
    ]
}

Или даже проще:

{
    "Transactions": [
        "23/2/2014 @ 16:48:8",
        [
            "1",
            "123456789",
            "100"
        ],
        [
            "2",
            "987654321",
            "20"
        ]
    ]
}

Или минимально:

{
    "23/2/2014 @ 16:48:8": [
        [
            "1",
            "123456789",
            "100"
        ],
        [
            "2",
            "987654321",
            "20"
        ]
    ]
}

Но я не понимаю, что следующий хороший стиль, даже если он будет работать, если вы знаете, какой элемент является тем, который и просто отправляет массив:

{
    "23/2/2014 @ 16:48:8": [
        123456789,
        100,
        987654321,
        20
    ]
}

Или просто массив (который также действителен json и содержит все, что нам нужно знать):

[
    123456789,
    100,
    987654321,
    20
]

Несмотря на то, что все рассмотренные данные, по-видимому, являются достоверными json, может быть предпочтительнее идти в любом направлении, либо структура, которая менее читаема, так и монологически только массив, или структура, которая названа и более сложна, но также более читаема, число может представлять, какое время это, может быть предпочтительнее хранить его как строку и аналогично иметь метку, что некоторые данные.

В моем последнем примере вы должны знать, что каждый второй элемент представляет собой сумму, и каждый другой элемент является ссылкой OCR.

Существует также альтернатива, которая справедлива json следующим образом:

{
    "23/2/2014 @ 16:48:8": [
        [
            {
                "OCR": 123456789
            },
            {
                "Amount": 100
            }
        ],
        [
            {
                "OCR": 987654321
            },
            {
                "Amount": 200
            }
        ]
    ]
}

Поэтому я не уверен, как представлять элементы и списки.

  • 3
    Итак, вы хотите, чтобы мы выбрали внешний вид ваших данных для вас?
  • 2
    какую операцию вы будете делать с JSON? сортировка? выбор? и т.д? Это основной вопрос для ваших данных
Показать ещё 3 комментария
Теги:

2 ответа

2
Лучший ответ

Только вы можете решить, как это должно выглядеть в конце, но вот несколько предложений...

Держитесь подальше от использования данных в качестве ключей...

{
    "23/2/2014 @ 16:48:8": []
}

Вместо этого сделайте что-нибудь подобное...

{
    "timestamp": "23/2/2014 @ 16:48:8",
    "data": []
}

И ваше использование массивов кажется более подходящим как объекты. Вот пример того, что я считаю приемлемым.

{
    "transactions": [
        { "id": 1, "timestamp": "23/2/2014 @ 16:48:8", "ocr": 12345678, "amount": 500 },
        { "id": 2, "timestamp": "23/2/2014 @ 16:48:9", "ocr": 345435, "amount": 200}
    ]
}
3

Лучший формат действительно зависит от того, как вы хотите потреблять данные. Но, как правило, я думаю о таких данных как о коллекции объектов, где каждая транзакция является объектом, обладающим свойствами. В этом ключе что-то вроде массива транзакций будет иметь смысл:

{
    "Transactions": [
        {
            "time": "23/2/2014 @ 16:48:8",
            "id": "1",
            "ocr": "123456789",
            "amount": "100"
        },
        {
            "time": "23/2/2014 @ 16:48:8",
            "id": "2",
            "ocr": "987654321",
            "amount": "200"
        }
    ]
}

Это позволяет вам выполнять транзакции, а затем получать доступ к каждому из свойств каждой транзакции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню