2011-07-05 27 views
0

考虑下面的XML例子:什么是理想JSON格式这个特定的XML

<Meters> 
    <Meter> 
    <Meter_ID>213</Meter_ID> 
    <Reading1>74.00000</Reading1> 
    <DateTime1>10/05/2011 09:00:18</DateTime1> 
    <Reading2>73.00000</Reading2> 
    <DateTime2>10/05/2011 09:15:18</DateTime2> 
    <Reading3>70.00000</Reading3> 
    <DateTime3>10/05/2011 09:30:18</DateTime3> 
    </Meter> 
    <Meter> 
    <Meter_ID>69</Meter_ID> 
    <Reading1>146.00000</Reading1> 
    <DateTime1>10/05/2011 09:00:18</DateTime1> 
    <Reading2>167.00000</Reading2> 
    <DateTime2>10/05/2011 09:15:18</DateTime2> 
    <Reading3>173.00000</Reading3> 
    <DateTime3>10/05/2011 09:30:18</DateTime3> 
    </Meter> 
</Meters> 

什么是最紧凑的JSON格式,因为最终的结果是 - 每个Meter_ID - 获得3 ReadingNDateTimeN双?

+0

你想的JSON包含的元素名称,还是只值对? –

+0

请注意,您发布的XML无效。关闭的“Meter”标签没有开放。第一个“Meter_ID”标签关闭两次。 –

+0

只是价值对,但我需要确保阅读/时间对是连续的(他们目前在现实世界中以8批为单位)。 BTW匆忙粘贴XML更正:-) –

回答

1

随着不同数量的每米对象读/日期时间对的数组:

[ 
    { 
     "Meter_ID": 213, 
     "Readings":[ 
      {"Reading1": 74,"DateTime1": "10/05/2011 09:00:18"}, 
      {"Reading2": 73,"DateTime2": "10/05/2011 09:15:18"}, 
      {"Reading3": 70,"DateTime3": "10/05/2011 09:30:18"} 
     ] 
    }, 
    { 
     "Meter_ID": 69, 
     "Readings":[ 
      {"Reading1": 146,"DateTime1": "10/05/2011 09:00:18"}, 
      {"Reading2": 167,"DateTime2": "10/05/2011 09:15:18"}, 
      {"Reading3": 173,"DateTime3": "10/05/2011 09:30:18"} 
     ] 
    } 
] 

随着固定在3每米对象读/日期时间对数:

[ 
    { 
     "Meter_ID": 213, 
     "Reading1": 74, 
     "DateTime1": "10/05/2011 09:00:18", 
     "Reading2": 73, 
     "DateTime2": "10/05/2011 09:15:18", 
     "Reading3": 70, 
     "DateTime3": "10/05/2011 09:30:18" 
    }, 
    { 
     "Meter_ID": 69, 
     "Reading1": 146, 
     "DateTime1": "10/05/2011 09:00:18", 
     "Reading2": 167, 
     "DateTime2": "10/05/2011 09:15:18", 
     "Reading3": 173, 
     "DateTime3": "10/05/2011 09:30:18" 
    } 
] 

卸下元素字段名称,并且只包括数据的键/值对...

更为紧凑的形式,每米对象具有不同数量的读取/日期时间对数组:

[ 
    { 
     "Meter_ID": 213, 
     "Readings":[ 
      {"74": "10/05/2011 09:00:18"}, 
      {"73": "10/05/2011 09:15:18"}, 
      {"70": "10/05/2011 09:30:18"} 
     ] 
    }, 
    { 
     "Meter_ID": 69, 
     "Readings":[ 
      {"146": "10/05/2011 09:00:18"}, 
      {"167": "10/05/2011 09:15:18"}, 
      {"173": "10/05/2011 09:30:18"} 
     ] 
    } 
] 

即使与固定在3%计对象读/日期对数更紧凑的形式:

[ 
    { 
     "Meter_ID": 213, 
     "74": "10/05/2011 09:00:18", 
     "73": "10/05/2011 09:15:18", 
     "70": "10/05/2011 09:30:18" 
    }, 
    { 
     "Meter_ID": 69, 
     "146": "10/05/2011 09:00:18", 
     "167": "10/05/2011 09:15:18", 
     "173": "10/05/2011 09:30:18" 
    } 
] 
+0

选项3看起来像一个,因为尽管我们现在有一次8个读数,但并不总是如此。我的三读例子是为了简洁起见 –