If I understand well your question, this is expected with JSONB.
see https://www.postgresql.org/docs/current/datatype-json.html for more info:
...jsonb does not preserve white space, does not preserve the order of object keys, and does not keep duplicate object keys. If duplicate keys are specified in the input, only the last value is kept...
...jsonb does not preserve white space, does not preserve the order of object keys, and does not keep duplicate object keys. If duplicate keys are specified in the input, only the last value is kept...
čt 22. 11. 2018 v 15:59 odesílatel Станислав Губанов <gubanovss@xxxxxxxxx> napsal:
Hello!I'd like to clarify, if this a bug or a featuresimple JSON{"rootC":{},"rootB":{},"rootZ":{},"rootA":[]}Table for datacreate table test_json (json_data jsonb);put json into tableINSERT INTO test_json (json_data) VALUES ('{"rootC":{},"rootB":{},"rootZ":{},"rootA":[]}');order of key in json is changed in such query:SELECT json_data FROM test_json;expected result: {"rootC":{},"rootB":{},"rootZ":{},"rootA":[]}actual result: {"rootA": [], "rootB": {}, "rootC": {}, "rootZ": {}}----- console log -----test=# create table test_json (json_data jsonb);CREATE TABLEtest=# INSERT INTO test_json (json_data) VALUES ('{"rootC":{},"rootB":{},"rootZ":{},"rootA":[]}');INSERT 0 1test=# select json_data from test_json;json_data------------------------------------------------------{"rootA": [], "rootB": {}, "rootC": {}, "rootZ": {}}(1 row)test=# drop table test_json;DROP TABLE--Sincerely, Stanislav!