我在JSON中有一堆数据需要解析,但其中一些不存在。
因此,我目前有以下try/cat(e)
,但是有没有更优雅的方法呢?
for (var u = 0; u < 100; u++) {
try {
var reactions = JSON.parse(dataParsed.data[u].reactions.summary.total_count)
} catch (err) {
console.log(err)
var reactions = 0
}
try {
var comments = JSON.parse(dataParsed.data[u].comments.summary.total_count)
} catch (err) {
var comments = 0
}
try {
var shares = JSON.parse(dataParsed.data[u].shares.count);
} catch (err) {
var shares = 0
}
postArray.push({
"id": dataParsed.data[u].id,
"message": dataParsed.data[u].message,
"createdTime": dataParsed.data[u].created_time,
"fullPicture": dataParsed.data[u].full_picture,
"reactions": reactions,
"comments": comments,
"shares": shares
})
}
只需使用value | 0
通过二进制操作捕获值。如果value
存在,则返回value
如果不存在,则返回0
制作一个函数:
function safeParse(propStr) {
let r = 0;
try {
r = propStr.split(/\.|\[|\]/g).reduce((a, c) => a[c], {});
} catch(e) {}
return r;
}
var reactions = safeParse("dataParsed.data[u].reactions.summary.total_count");
var comments = safeParse("dataParsed.data[u].comments.summary.total_count");
var shares = safeParse("dataParsed.data[u].shares.count");
您可以使用
var reactions = dataParsed && dataParsed.data[u] && dataParsed.data[u].reactions && dataParsed.data[u].reactions.summary && dataParsed.data[u].reactions.summary.total_count || 0
有一个关于可选链式连接和Nulish聚合的提议
var reactions = dataParsed?.data[u]?.reactions?.summary?.total_count ?? 0
我想获取字节数组的流,但我知道没有获取字节数组流的方法。 我的问题, 为什么不支持此功能? 如何获取字节数组流? 注意:我知道我可以使用< code>Byte[]而不是< code>byte[],但是这并没有回答我的问题。
我使用beautifulsoup查找网页上的页数,但在编写代码时: 它给出了以下错误: 回溯(最近一次调用):文件“C:/Users/HangaarLab/Desktop/sonartik/sonartik.py”,第13行,在soup=BeautifulSoup(response.text)TypeError中:“模块”对象不可调用 在另一台计算机中,代码运行,但它给出了以下警告: UserWa
问题内容: 我正在尝试使用杰克逊对POJO进行序列化和反序列化。从POJO到JSON可以完美地工作,而从另一个方向去则不行。 我有一个POJO 并运行和测试我运行了calendar.model包; 引发异常 我已经尽力将JSON转换为POJO了,但是没有。如果我从JSON映射到Map类型,它确实可以工作。 谢谢您的帮助 编辑 这是我依赖中的杰克逊的grep 看起来除了jackson2之外,没有其他
除了把它们全部输入外,还有没有更好的方法在字符串中列出它们?
我正在尝试从下面的git链接运行代码 但我有个错误 nosuchMethodError:没有静态方法getFont(landroid/content/context;ilandroid/util/typedvalue;ilandroid/widget/textview;)landroid/graphics/typeface;在Landroid/Support/V4/Content/Res/Reso
问题内容: 我有一个URL 。当我添加此文件时 现在将允许我使用链接。但是我该怎么做呢? 另外,我怎样才能使这个网址?谢谢。对不起,我还比较陌生。 问题答案: 感谢您的想法@denoise和@mogosselin。也可以使用@stslavik指出我的代码示例的某些缺点。 这是我的方法: 通过使用我得到的链接 而 这是我的目标。我只会用PHP做其他事情。