Javascript 使用JSON.parse(),如何在多维数组中获取值?
在使用JSON.parse之前,JSON数组如下所示:Javascript 使用JSON.parse(),如何在多维数组中获取值?,javascript,arrays,json,Javascript,Arrays,Json,在使用JSON.parse之前,JSON数组如下所示: var temp = { "queries": [ { "sample_size": 3, "results": [ { "name": "temperature", "tags": { "Tag": [ "temperature" ] },
var temp = {
"queries": [
{
"sample_size": 3,
"results": [
{
"name": "temperature",
"tags": {
"Tag": [
"temperature"
]
},
"values": [
[
1452221580000,
27.5
],
[
1452221640000,
27.1
],
[
1452221700000,
27.3
]
]
]}
]}
}
我需要从数组中获取值,所以我使用JSON.parse()
之后,value1
是否等于27.5
?
我不确定这种方法是否可以将值签名到变量。它不是JSON字符串,而是格式良好的对象,不需要解析它。存在嵌套数组,因此需要使用索引从数组中获取对象元素
var-temp={
“查询”:[{
“样本量”:3,
“结果”:[{
“名称”:“温度”,
“标签”:{
“标签”:[
“温度”
]
},
“价值观”:[
[
1452221580000,
27.5
],
[
1452221640000,
27.1
],
[
1452221700000,
27.3
]
]
}]
}]
};
//使用括号表示法
var dataNum=temp['querys'][0]['sample_size'];
var timestamp1=temp['querys'][0]['results'][0]['values'][0][0]
var value1=temp['querys'][0]['results'][0]['values'][0][1];
log(dataNum,timestam1,value1);
//使用点表示法
var dataNum1=临时查询[0]。样本大小;
var timestamp11=temp.querys[0]。结果[0]。值[0][0]
var value11=临时查询[0]。结果[0]。值[0][1];
日志(dataNum1,timestamp11,value11)代码>它不是一个JSON字符串,它是一个格式良好的对象,不需要解析它。存在嵌套数组,因此需要使用索引从数组中获取对象元素
var-temp={
“查询”:[{
“样本量”:3,
“结果”:[{
“名称”:“温度”,
“标签”:{
“标签”:[
“温度”
]
},
“价值观”:[
[
1452221580000,
27.5
],
[
1452221640000,
27.1
],
[
1452221700000,
27.3
]
]
}]
}]
};
//使用括号表示法
var dataNum=temp['querys'][0]['sample_size'];
var timestamp1=temp['querys'][0]['results'][0]['values'][0][0]
var value1=temp['querys'][0]['results'][0]['values'][0][1];
log(dataNum,timestam1,value1);
//使用点表示法
var dataNum1=临时查询[0]。样本大小;
var timestamp11=temp.querys[0]。结果[0]。值[0][0]
var value11=临时查询[0]。结果[0]。值[0][1];
日志(dataNum1,timestamp11,value11)代码>
JSON数组如下所示:
var temp = {
"queries": [
{
"sample_size": 3,
"results": [
{
"name": "temperature",
"tags": {
"Tag": [
"temperature"
]
},
"values": [
[
1452221580000,
27.5
],
[
1452221640000,
27.1
],
[
1452221700000,
27.3
]
]
]}
]}
}
这不是JSON。这是一个JavaScript对象。你的问题中没有JSON
这将返回undefined
,因为temp
不是一个JSON字符串
查询是一个数组,而不是一个对象。它没有sample\u size
属性
该数组中的第一个值是具有该属性的对象
您需要按顺序访问数据结构的每个级别。你不能跳过关卡
var dataNum = temp.queries[0].sample_size;
JSON数组如下所示:
var temp = {
"queries": [
{
"sample_size": 3,
"results": [
{
"name": "temperature",
"tags": {
"Tag": [
"temperature"
]
},
"values": [
[
1452221580000,
27.5
],
[
1452221640000,
27.1
],
[
1452221700000,
27.3
]
]
]}
]}
}
这不是JSON。这是一个JavaScript对象。你的问题中没有JSON
这将返回undefined
,因为temp
不是一个JSON字符串
查询是一个数组,而不是一个对象。它没有sample\u size
属性
该数组中的第一个值是具有该属性的对象
您需要按顺序访问数据结构的每个级别。你不能跳过关卡
var dataNum = temp.queries[0].sample_size;
将代码更改为:
var dataNum=temp['querys']['sample_size'];
var timestamp1=temp['querys']['results']['value'][0][0]
var value1=temp['querys']['results']['value'][0][1]
将代码更改为:
var dataNum=temp['querys']['sample_size'];
var timestamp1=temp['querys']['results']['value'][0][0]
var value1=temp['querys']['results']['value'][0][1]
temp
是一个Javascript对象。需要JSON格式的字符串。temp.querys.samplesize
,temp.querys.results[0]。值[1][0]
此外,results
是一个数组,因此在您的代码中(访问原始对象时),['results']
之后缺少一个[0]
。嗯,这是一个有效的对象吗?查询具有数组的左大括号和对象的右大括号。打字错误?你是对的,乍一看它看起来是有效的,但格式不好。检查时大括号不匹配。temp
是Javascript对象。需要JSON格式的字符串。temp.querys.samplesize
,temp.querys.results[0]。值[1][0]
此外,results
是一个数组,因此在您的代码中(访问原始对象时),['results']
之后缺少一个[0]
。嗯,这是一个有效的对象吗?查询具有数组的左大括号和对象的右大括号。打字错误?你是对的,乍一看它看起来是有效的,但格式不好。检查时大括号不匹配。如果没有解析,我如何获取值?我尝试使用temp.querys.results.values
,但没用。你能做一个示例吗?@JK.Lin:在没有解析的情况下检查代码段,我如何获取值?我尝试使用temp.querys.results.values
,但没用。你能做一个示例吗?@JK.Lin:检查代码段该对象不是一个结构良好的Javascript对象,可以通过和立即访问。该对象不是一个结构良好的Javascript对象,可以通过和立即访问。