Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有嵌套响应的json解析isse_Javascript_Json - Fatal编程技术网

Javascript 带有嵌套响应的json解析isse

Javascript 带有嵌套响应的json解析isse,javascript,json,Javascript,Json,我正在尝试解析json响应 [{ "province": "abc", "county": "aa", "timeline": { "cases": { "4/11/20": 4, "4/12/20": 5 }, "recover": { "4/11/20": 0, "4/12/20": 1 } } }] 虽然我可以得到“county”值,但我无法进入timline数据。它要么给我未定义的问题,要么

我正在尝试解析json响应

[{
"province": "abc",
"county": "aa",
"timeline": {
    "cases": {
        "4/11/20": 4,
        "4/12/20": 5
    },
    "recover": {
        "4/11/20": 0,
        "4/12/20": 1
    }
}
}]

虽然我可以得到“county”值,但我无法进入timline数据。它要么给我未定义的问题,要么给[obejct Object]作为日志。下面是我的代码

parseTimeLineData(resData)
  {
   let  timeLine = [];
    resData.map(data =>
    {
     let dd = data.timeline;
      Object.keys(dd).map((key, i) => {
      var one = {key}
      alert(one);
      var value = dd[key]
      })
    });  
  }

我的要求是解析案例和恢复节点,并将它们保存在单独的数组中以供进一步使用。还需要知道如何仅从大数组中获取第一个索引值。

使用JSON.stringify

[{
“省”:“abc”,
“县”:“aa”,
“时间线”:{
“案例”:{
"4/11/20": 4,
"4/12/20": 5
},
“恢复”:{
"4/11/20": 0,
"4/12/20": 1
}
}
}].map(data=>Object.keys(data.timeline).map(item=>alert(JSON.stringify(data.timeline[item]))

由于您没有提供具体的示例,所以我仍然不太确定您希望如何使用这些数组。因此,我盲目地猜测,在您的
数据中会有其他对象
,并且您希望以某种方式累积
案例
恢复
值,然后在将来使用这些值。下面是
reduce
的一个示例:

const数据=[
{
省:“abc”,
县:“aa”,
时间线:{
案例:{
"4/11/20": 4,
"4/12/20": 5,
},
恢复:{
"4/11/20": 0,
"4/12/20": 1,
},
},
},
{
省:“xyz”,
县:“bb”,
时间线:{
案例:{
"4/13/20": 40,
"4/14/20": 50,
},
恢复:{
"4/13/20": 10,
"4/14/20": 5,
},
},
},
];
函数parseTimeLineData(resData){
返回resData.reduce((acc,data)=>{
const newCases=Object.entries(
data.timeline.cases
).map(([key,value])=>({[key]:value}));
const newRecovers=Object.entries(
data.timeline.recover
).map(([key,value])=>({[key]:value}));
acc.cases=!acc.cases?newCases:[…acc.cases,…newCases];
acc.recover=!acc.recover?newRecovers:[…acc.recover,…newRecovers];
返回acc;
}, {});
}
const reducedValues=parseTimeLineData(数据);

console.log(reducedValues)
“或将[obejct Object]作为log”,因为函数中的
值是一个对象?那么我如何解析最内部的val并从中获取键和值。所需数据的形状是什么?你将如何使用它?请提供这一信息。你可以更新你的问题。@devserkan我想下面我得到了答案。我是新手,所以不熟悉它的很多功能。比如JSON。stringify这与React无关,
JSON。stringify
属于JS。如果我没有弄错提供的答案,您会得到一个数组,我认为这不是期望的输出。它现在给我值。谢谢。。我是新来的。所以我对JSON不太了解。stringify()解决了这个问题。很抱歉,我知道srtringify只是为了看到结果。我们可以使用它获取VAL。