Tôi muốn chuyển đổi các hàng của một kỷ lục thiết lập để JSON, nhưng không bao gồm bất kỳ mục rỗng mà chỉ sẽ kết thúc bằng việc không xác định trong JavaScript anyway. Ví dụ, giả sử tôi có bảng testdata
với mụcnull Trừ từ row_to_json() dẫn đến PostgreSQL
id | prop1 (integer) | prop2 (text)
-------------------------------------
1 | 42 | 'Answer'
2 | NULL | 'No prop one'
3 | 0 | NULL
và sau đó thực hiện
SELECT row_to_json(testdata) FROM testdata
Những gì tôi có được là:
{"id":"1","prop1":"42","prop2":"Answer"}
{"id":"2","prop1":null,"prop2":"No prop one"}
{"id":"3","prop1":"0","prop2":null}
Nhưng thay vào đó, những gì tôi muốn là:
{"id":"1","prop1":"42","prop2":"Answer"}
{"id":"2","prop2":"No prop one"}
{"id":"3","prop1":"0"}
Đây có phải là có thể? Theo JSON functions documentation cho PostgreSQL 9.3, chỉ có một tùy chọn thêm hoặc tham số cho row_to_json
, nhưng thiết pretty_bool=true
không loại bỏ các null, vì vậy nó có vẻ như nếu câu trả lời có thể là không. Nhưng điều này cũng có vẻ như đó là một chức năng rất rõ ràng và hữu ích, vì vậy tôi hy vọng rằng ai đó khác đã tìm thấy thứ tôi đã bỏ lỡ.
mục tiêu cuối cùng của tôi là để lấy các bản ghi trong JavaScript với một cuộc gọi GET
đến một trang PHP. Tôi có nên xây dựng JSON trong PHP từ một bản ghi chuẩn hơn, thay vì sử dụng các thường trình JSON của PostgreSQL không?
_but không bao gồm bất kỳ mục rỗng mà chỉ sẽ kết thúc bằng việc không xác định trong JavaScript anyway_ bất động sản sẽ được null không xác định. Nó sẽ không được xác định nếu bạn loại bỏ nó khỏi đối tượng như bạn muốn làm. –
tôi có nghĩa là tôi cần họ được undefined, vì vậy họ sẽ kết thúc được định nghĩa trong ứng dụng JavaScript cụ thể của tôi - nó chỉ là một câu hỏi về nơi dọc theo chuỗi từ PostgreSQL qua PHP để JS mà tôi quản lý để làm cho điều đó xảy ra. Tất nhiên, điều đó không ảnh hưởng đến câu hỏi của tôi theo bất kỳ cách nào ... – Michael
Bạn có chắc là có lợi ích trong việc có thuộc tính không được xác định thay vì null? Tôi không thấy điểm. Hỏi nó cho các chuyên gia JS. –