私はwoocommerce APIを使用して情報を取得して保存しています。現在、私たちのセットアップは、アンダースコアの代わりにラクダのケースを使用するように設計されています。私はjq
を使って情報を処理していますが、私はsub(regex, tostring)
関数を使ってJSelの下線をcamelCaseと置き換えることができますか?ここでJQを使用したJSONのアンダースコアの置換
は、例えば、コード
"line_items": [
{
"id": xxxx,
"name": "xxxx",
"sku": "xxxx",
"product_id": xxxx,
}
の一例ですので、私が見つけたことで別の答えによると、これは動作します:curl https://www.testsite.com/wp-json/wc/v1/orders -u user:pass | jq '.[] | with_entries(if .key | contains("_") then .key |= sub("_";"") else . end)'
とアンダースコアを削除します。
結果は次のとおりです。
"lineitems": [
{
"id": xxxx,
"name": "xxxx",
"sku": "xxxx",
"productid": xxxx,
}
しかし、私は私が期待する結果を得ることはありませんcurl https://www.testsite.com/wp-json/wc/v1/orders -u user:pass | jq '.[] | with_entries(if .key | contains("_") then .key |= sub("(\\_)([a-z])";"$2\u") else . end)'
をしようとします。
期待される結果は次のようになります。
"lineItems": [
{
"id": xxxx,
"name": "xxxx",
"sku": "xxxx",
"productId": xxxx,
}
私はjq
を使用して多くの経験を持っていないので、私は私が間違ってやっているかわからないんだけど。この問題の解決策はありますか?