Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从第_行到第_json()行中排除空值将导致PostgreSQL_Json_Postgresql - Fatal编程技术网

从第_行到第_json()行中排除空值将导致PostgreSQL

从第_行到第_json()行中排除空值将导致PostgreSQL,json,postgresql,Json,Postgresql,我希望将记录集的行转换为JSON,但不包括任何将最终在JavaScript中未定义的空条目。例如,假设我有一个带有条目的表testdata id | prop1 (integer) | prop2 (text) ------------------------------------- 1 | 42 | 'Answer' 2 | NULL | 'No prop one' 3 | 0 | NULL 然后执行

我希望将记录集的行转换为JSON,但不包括任何将最终在JavaScript中未定义的空条目。例如,假设我有一个带有条目的表
testdata

id | prop1 (integer) | prop2 (text)
-------------------------------------
 1 |               42 | 'Answer'
 2 |             NULL | 'No prop one'
 3 |                0 | NULL
然后执行

SELECT row_to_json(testdata) FROM testdata
我得到的是:

{"id":"1","prop1":"42","prop2":"Answer"}
{"id":"2","prop1":null,"prop2":"No prop one"}
{"id":"3","prop1":"0","prop2":null}
{"id":"1","prop1":"42","prop2":"Answer"}
{"id":"2","prop2":"No prop one"}
{"id":"3","prop1":"0"}
但相反,我想要的是:

{"id":"1","prop1":"42","prop2":"Answer"}
{"id":"2","prop1":null,"prop2":"No prop one"}
{"id":"3","prop1":"0","prop2":null}
{"id":"1","prop1":"42","prop2":"Answer"}
{"id":"2","prop2":"No prop one"}
{"id":"3","prop1":"0"}
这可能吗?根据for PostgreSQL 9.3,对于
row_to_json
,只有一个额外的选项或参数,但是设置
pretty_bool=true
并不会删除空值,因此看起来答案可能是否定的。但这似乎也是一个非常明显和有用的函数,所以我希望其他人能找到我错过的东西


我的最终目标是通过对PHP页面的
GET
调用来检索JavaScript中的记录。我是否最好从更标准的记录集在PHP中构建JSON,而不是使用PostgreSQL的JSON例程?

看起来该函数的未来版本可能会有一个“忽略空值”选项-

Postgres 9.5引入函数,这似乎正是您想要的。

但不包括任何null条目,这些条目最终将在JavaScript中被未定义。无论如何,属性将为null而不是未定义。如果您想从对象中删除它,它将是未定义的。我的意思是,我需要它们是未定义的,因此它们最终将在我的特定JavaScript应用程序中被定义——这只是一个从PostgreSQL到PHP到JS的链条中我在哪里实现的问题。当然,这不会以任何方式影响我的问题……您确定在中未定义属性而不是null会有好处吗?我看不出有什么意义。问问JS专家吧。我想你是对的,可能没什么区别。。。我没有考虑太多,因为我的目标是根本没有价值观。我这里的问题不是关于JavaScript,而是关于PostgreSQL以及如何生成JSON,这样我就不必首先将丢失的值发送到浏览器。希望有一个替代方案能够及时用于Postgres9.5,尽管我目前在Postgres代码中看不到任何内容。PostgreSQL9.5(目前仍在开发中)具有该功能。