79249431

Date: 2024-12-03 23:09:06
Score: 1.5
Natty:
Report link

Based on my understanding you need the index of the path? let me know

WITH json_data AS (
    SELECT '{"Laptop": {"brand": "Dell", "price": 1200, "specs": [{"name": "CPU", "Brand": "Intel"}, {"name": "GPU", "Brand": "Nvdia"}, {"name": "RAM", "Brand": "Kingston"}]}}'::jsonb AS col
)
SELECT 
    CONCAT('$.Laptop.specs[', idx - 1, '].name') AS full_json_path
FROM 
    json_data,
    LATERAL jsonb_array_elements(col->'Laptop'->'specs') WITH ORDINALITY arr(elem, idx)
WHERE 
    elem->>'name' = 'CPU';

Output

$.Laptop.specs[0].name
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • Low reputation (0.5):
Posted by: samhita