NPM 包 getsub 使用教程

阅读时长 4 分钟读完

在前端开发中,获取远程数据是非常常见的需求。而在实际开发中,我们不得不面对复杂多变的请求返回数据,其中又以 JSON 格式的数据最为普遍。不过,有时候我们需要获取其中某一个节点,而并不想手动去遍历 JSON 树形结构。那该怎么办呢?对此,我们可以使用 NPM 包 getsub。

getsub 是一个能够轻松获取给定 JSON 节点的 NPM 包,本篇文章就将为大家详细介绍如何使用它。

安装 getsub

首先,我们需要安装 getsub。在命令行界面中,输入以下命令即可完成安装:

使用 getsub

使用 getsub 分为两步:第一步是将要获取的 JSON 数据转化为对象,第二步则是调用 getsub 方法获取节点。下面,我们将一步步介绍如何使用 getsub。

创建 JSON 数据

假设我们现在有以下这段 JSON 数据(从一个 API 中请求得到的):

-- -------------------- ---- -------
--- -------- - -
  ------- ----- -----
  ------ ---
  ---------- -
    --------- ---- ---- -----
    ------- ----------
    -------- -----
    ------ -----
  -
-

将 JSON 数据转化为对象

或者,如果你是将数据从远端服务器中请求得到,可以这样:

获取指定的节点

getsub.best() 方法可以用来获取所有的节点,不过,getsub.best() 是不建议使用的,因为你将会失去在获取属性时的容错性和可维护性。

更好的做法是使用 getsub() 方法,并将需要获取的节点名传递给它,示例代码如下所示。

在上面的代码中,节点名 address.city 必须由键名和属性名二者组成,中间用一个点号 (.) 隔开。如果你需要获取更深层节点,指定更长的节点名即可。当然,如果节点名过长,这会显得非常冗长,不利于维护。在这种情况下,你可以使用别名。

使用别名

通过使用 setAlias() 方法,我们可以轻松将一个节点名转化为别名。setAlias() 方法接受一个键名和对应的别名作为参数,我们来看看示例代码。

现在我们已经将节点名 address.city 转化为了别名 city,下一步就是调用 getsub() 方法并使用别名获取指定的节点。

节点不存在时的容错

当查询 getsub() 方法未能找到指定节点时,将无法返回任何信息,这将会导致某些代码的异常终止。为了避免这样的问题,我们需要使用精灵方法 guard()。

guard() 方法接受一个节点名以及可选的默认值作为参数。如果没有找到指定的节点,guard() 方法将返回一个提供的默认值。示例代码如下所示。

在上面的示例代码中,如果节点 address.zip 不存在,将返回默认值 0。

总结

到这里,我们已经详细介绍了如何使用 getsub 包来获取 JSON 中的节点。通过 setAlias() 方法或使用 guard() 方法,我们可以轻松地优化和维护我们的代码。希望本篇文章能够帮助你更轻松地处理 JSON 数据。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600557f081e8991b448d5063

纠错
反馈