Если вы хотите проанализировать этот формат данных, вам сначала нужно знать, что это за формат данных. Похоже, что это не какой-либо широко известный формат данных, и это не тот формат, который я знаю. Очевидно, что это не JSON и не YAML, а определенно не XML.
Итак, вам, вероятно, придется написать свой собственный парсер. Или препроцессор, который преобразует данные в более известный формат, для которого парсер уже существует.
Например, если вы преобразуете пример в YAML, он будет выглядеть примерно так:
"serviceMetricList":
[
{"MetricDataList":
{"metricDataList":
[
{"metricDate": "2011-04-05T14:50:00.000Z",
"metricValue": "427448.0"},
{"metricDate": "2011-04-12T14:30:00.000Z",
"metricValue": "430089.0"}
]
},
"urlSerialNo": "1"
}
]
И вы можете разобрать это так:
require 'yaml'
h = YAML.load(your_java_data)
Date.parse(h['serviceMetricList'][0]['MetricDataList']['metricDataList'][0]['metricDate'])
# => #<Date: 2011-04-05 (4911313/2,0,2299161)>
Float(h['serviceMetricList'][0]['MetricDataList']['metricDataList'][0]['metricValue'])
# => 427448.0
# or maybe, if you don't like to lose precision:
require 'bigdecimal'
BigDecimal(h['serviceMetricList'][0]['MetricDataList']['metricDataList'][0]['metricValue'])
# => #<BigDecimal:eb8240,'0.427448E6',8(12)>