2014-02-23 121 views
0

在這種情況下,第一個變量始終是ID,第二個變量始終是OCR號碼,第三個數字始終是金額。然後會這有什麼區別這樣做可以:如何選擇數據的json結構?

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

但我不thnk,下面的是,即使你知道哪些元素是與剛剛發佈一個陣列,將工作的好作風:

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

或者僅僅是一個數組(這也是有效的JSON並且包含了所有我們需要知道):

[ 
    123456789, 
    100, 
    987654321, 
    20 
] 

即使所有的所示例似乎是有效的JSON,可能優選在任一方向走,無論是結構較少可讀性和monimally只是一個數組,或者一個被命名並且更復雜但更具可讀性的結構,即使數字可以表示什麼t當然,最好將它存儲爲一個字符串,並且類似於標籤中的某些數據。

在我的最後一個示例中,您必須知道每個第二個元素都是一個數量,而其他所有元素都是OCR引用。

還有就是這個樣子有效的JSON替代:

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

所以我不知道如何表示的元素和列表。

+3

那麼,你想讓我們爲你選擇數據的外觀嗎? –

+2

你會用json做什麼樣的操作?排序?選擇?等等?這是您數據的核心問題 –

+0

只需使用您在使用它時最有用的格式即可。 – Joeytje50

回答

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

這可讓您遍歷事務,然後訪問每個每筆交易的性質。