Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        6年前关闭。
                    
                
        

在这种情况下,第一个变量始终是ID,第二个变量始终是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
            }
        ]
    ]
}


因此,我不确定如何表示元素和列表。

最佳答案

只有您可以决定最终的外观,但是这里有一些建议...

远离将数据用作键...

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

关于javascript - 如何选择数据的json结构? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21971227/

10-12 22:19