json - 使用 Linux bash shell 和 Underscore 解析 JSON

标签 json linux bash underscore.js

下面的代码没有执行我需要的操作。我想将 $STR 传递给 Underscore 并从 JSON 数据中提取“name”属性。

#!/bin/bash
STR='['$@']';
RESULT=`underscore pluck --data '+$STR+' name`;
echo $RESULT;

JSON 数据:

{"maxResults":1,"resultList":[{"@class":"com.sohnar.trafficlite.transfer.crm.refactor.ClientCRMEntryTO","id":331458,"version":2,"dateCreated":"2017-05-31T13:20:22.960+0000","dateModified":"2017-06-05T14:23:59.961+0000","lastUpdatedUserId":71954,"name":"ACME_CLIENT","website":null,"description":null,"billingLocation":null,"primaryLocation":null,"crmEntryType":"CLIENT","industryType":null,"accountManagerId":103049,"crmClientClassificationListItemId":{"id":12405},"companyProfile":{"id":486024,"version":1,"dateCreated":"2017-05-31T13:20:22.960+0000","dateModified":"2017-06-05T14:23:59.962+0000","sourceOfBusinessListItemId":null,"creditTermsListItemId":{"id":4215},"relationshipSince":"2017-05-30T23:00:00.000+0000","turnover":0,"employees":0,"taxNumber":null,"companyNumber":null,"nominalCode":null,"accountPackageId":null,"optOutMarketing":false,"optOutEmail":false,"optOutTelephone":false,"notes":null},"colorCode":0,"externalCode":"SAP-01","clientState":"CLIENT","defaultCustomRateSetId":null,"preferredCurrencyId":{"id":48},"freeTags":[]}],"windowSize":5,"currentPage":1}

最佳答案

这里有几个问题。首先,您应该使用双引号,而不是单引号。双引号允许变量扩展。其次,我假设您不希望 + 作为数据的一部分 - 它们不是 bash 中的字符串连接运算符(不需要)。

str="[$@]"
result=$(underscore pluck --data "$str" name)
echo $result

我使用了 $( ) 符号而不是反引号 ( `` )。反引号被认为已弃用且难以阅读。

我已将大写变量名称替换为小写字母。这是因为 shell 使用了许多大写变量名称,因此使用大写变量名称存在名称冲突的风险。最好使用小写或混合大小写的变量名称。

我还删除了多余的分号;。它们不会造成任何伤害,但也没有任何用处。在 bash 中,分号是语句分隔符,而在 C 和 Java 等语言中,分号是语句终止符。

编辑:双引号$@

关于json - 使用 Linux bash shell 和 Underscore 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44373150/

相关文章:

c - Valgrind block 丢失,从哪里释放?

linux - Bash 文件名前缀替换

linux - 将 Maildir 内容移动到父目录

javascript - 如何使用 JSON 将 C# 对象转换为 Javascript 数组数组?

json - JSON RPC-“id”的作用是什么?

javascript - 如何在 Javascript 中检查它是 JsonArray 还是 JsonObject

javascript - 如何删除一个json元素?

javascript - 将数据从 Python 脚本发送到浏览器(在 Linux 上的 xserver 下)

linux - Linux 上的 CashCode Bill2Bill 通信错误

bash - 留在 bash 脚本结束后更改的目录中