var listCompleteInjections = [
{"05-06-2014",0.5},
{"16-06-2014",0.5},
{"20-06-2014",0.5}
];
这是我从设备收到的数据片段。它只有键和值,但没有标签表示相同。由于缺少标签,我无法访问密钥和值。请帮忙。
P.S。数据对应于"日期"和" Dosage"。
答案 0 :(得分:3)
鉴于json无效。
给定字符串不是json所以你无法读取数据。
如果你有未知的key->值对,那么你也可以访问json:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
alert(key + " -> " + p[key]);
}
}
答案 1 :(得分:1)
这应该有效:
for(var key in listCompleteInjections[0]) {
console.log('Value: '+listCompleteInjections[key]);
}
你也可以循环遍历你的子数组:
for(var key in listCompleteInjections[0]) {
for(var subKey in listCompleteInjections[key]) {
console.log('Value: '+listCompleteInjections[key][subKey]);
}
}
答案 2 :(得分:0)
正如Hitesh所说,它不是有效的JSON,但它几乎有效的JSON。我假设你收到这个数据作为字符串?如果是这样,您可以使用String.replace()
和正则表达式按摩使有效。
var listCompleteInjections = '[\
{"05-06-2014",0.5},\
{"16-06-2014",0.5},\
{"20-06-2014",0.5}\
]'.replace(/",/g, '":');
现在你可以JSON.parse()
了。
function log(what) { document.getElementById('log').value += what + '\n'; }
var listCompleteInjections = '[\
{"05-06-2014",0.5},\
{"16-06-2014",0.5},\
{"20-06-2014",0.5}\
]'.replace(/",/g, '":');
log('listCompleteInjections as massaged string:');
log(listCompleteInjections + '\n');
var obj = JSON.parse(listCompleteInjections);
log('obj[0]["05-06-2014"] = ' + obj[0]["05-06-2014"]);
#log {
width: 100%;
height: 300px;
}
<textarea id="log"></textarea>