データソースを通じてGoodreads APIを使用しています。私はISBN番号で検索し、結果があれば結果を返します。ここでは本が見つかった場合、それは次のようになります。pick()の結果が文字列であるかどうかを確認する方法
<GoodreadsResponse>
<Request>
<authentication>true</authentication>
<key><![CDATA[--redacted--]]></key>
<method><![CDATA[api_book_url]]></method>
</Request>
<book id="6558055">
<title><![CDATA[Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition]]></title>
<isbn><![CDATA[]]></isbn>
<link>http://www.goodreads.com/book/show/6558055-mythical-man-month-the?utm_medium=api&utm_source=book_link</link>
</book>
</GoodreadsResponse>
本が見つからなかった場合、それは<book>
セクションが存在しないことを除いて同じになります。このXMLがKRLによって解析されると、JSONの外観を想像することができます。
私はこのような応答のうちlink
タグINGのpick()
だ:だけで正常に動作し<book>
セクションがある場合
url = data.pick("$..link.$t");
を。 url
は文字列になります。しかし、<book>
セクションがない場合、url
は空の配列([]
)になります。
url
が文字列の場合にのみ、私のルール内のアクションを実行します。私はif url != [] then
またはurl.length()
(常にゼロ)のようなものを使ってみましたが、それらのどれも動作しませんでした。
url
が文字列で、空の配列の場合はどうすればわかりますか?