Tôi đã tìm kiếm khá nhiều về điều này và vẫn không trả lời được. Tôi đang sử dụng PostgreSQL. Tên cột là "các phần" và loại cột là json [] trong ví dụ bên dưới.Cách lấy các phần tử từ mảng Json trong PostgreSQL
cột của tôi trông như thế này trong cơ sở dữ liệu:
sections
[{"name" : "section1",
"attributes": [{"attrkey1": "value1",
"attrkey2": "value2"},
{"attrkey3": "value3",
"attrkey4": "value4"}]
},
{"name" : "section2",
"attributes": [{"attrkey3": "value5",
"attrkey6": "value6"},
{"attrkey1": "value7",
"attrkey8": "value8"}]
}]
Đó là mảng json và tôi muốn để có được "attrkey3" trong kết quả của tôi. Để nhận được khóa đặc biệt từ Json, tôi có thể sử dụng json_extract_path_text(json_column, 'json_property')
đang hoạt động hoàn toàn tốt. Nhưng tôi không có ý tưởng làm thế nào để có được một số tài sản từ json [].
Nếu tôi nói về ví dụ trên, tôi muốn nhận giá trị của thuộc tính "attrkey2" được hiển thị trong kết quả của tôi. Tôi biết đó là một mảng để nó có thể hoạt động khác với bình thường, ví dụ: tất cả các giá trị của mảng của tôi sẽ hoạt động như một hàng khác vì vậy tôi có thể phải viết truy vấn phụ nhưng không biết làm thế nào để thực hiện nó.
Ngoài ra, tôi không thể viết chỉ mục tĩnh và nhận thuộc tính của phần tử json từ một số chỉ mục cụ thể. Truy vấn của tôi sẽ được tạo động vì vậy tôi sẽ không bao giờ biết có bao nhiêu phần tử nằm trong mảng json.
Tôi đã xem một số ví dụ tĩnh nhưng không biết cách triển khai nó trong trường hợp của mình. Ai đó có thể cho tôi biết làm thế nào để làm điều này trong truy vấn?
Tôi không chắc chắn rằng bạn có cột 'json []' (giá trị mảng PostgreSQL của cột 'json'), hoặc cột được nhập« json', có vẻ là một mảng JSON (như trong ví dụ của bạn). Vui lòng làm rõ. – pozs