Я работаю с API woocommerce для извлечения и хранения информации. В настоящее время наша установка предназначена для использования верблюжьего корпуса вместо подчеркивания. Я использую jq
для обработки нашей информации, но мне любопытно, как я могу использовать функцию sub(regex, tostring)
для замены подчеркивания в моем JSON с помощью camelCase?Замена символа подчеркивания в JSON с использованием JQ
Вот пример кода
"line_items": [
{
"id": xxxx,
"name": "xxxx",
"sku": "xxxx",
"product_id": xxxx,
}
Например, в соответствии с другим ответом на SO, что я нашел, что это работает: 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
, так что я не уверен, что я делаю неправильно. Есть ли лучшее решение этой проблемы?