gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:04 25 4
gpt4 key购买 nike

下面的代码没有执行我需要的操作。我想将 $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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com