2014-02-23 93 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" 
     } 
    ] 
} 

这可让您遍历事务,然后访问每个每笔交易的性质。