Javascript 使用验证解析json

Javascript 使用验证解析json,javascript,json,node.js,Javascript,Json,Node.js,我正在尝试从http调用解析json。为此,我编写了http调用,得到的数据如下 所以,如果我想获得视频的比特率,我必须写下: video_bitrate: data.value.stats.media_info.streams[1].bitrate 但有时比特率值不存在并引发异常。我不想那样,我怎么能检查呢 我发现的一个方法是我必须写: if(data.hasOwnProperty('value')) { if (data.value.hasOwnProperty('value')) {

我正在尝试从http调用解析json。为此,我编写了http调用,得到的数据如下

所以,如果我想获得视频的比特率,我必须写下:

video_bitrate: data.value.stats.media_info.streams[1].bitrate
但有时比特率值不存在并引发异常。我不想那样,我怎么能检查呢

我发现的一个方法是我必须写:

if(data.hasOwnProperty('value')) {
 if (data.value.hasOwnProperty('value')) {
  ...
  if(data.value.stats.media_info.streams[1].hasOwnerProperty('bitrate') {...}
 }
}

但这条路又长又丑。我还能做什么?

试试javascript的三元运算符:D

您可以使用:

if(data.hasOwnProperty('value')) {
 if (data.value.hasOwnProperty('value')) {
  ...
  if(data.value.stats.media_info.streams[1].hasOwnerProperty('bitrate') {...}
 }
}
const has_it = data.hasOwnProperty('value') ? true : false;
var jp = require('jsonpath');
var bitrates = jp.query(data, '$..streams[1].bitrate');