Merhaba,
Şimdiki yazımda Postgresql 9.2 ile gelen json desteğinden bahsedeceğim. Herhangi bir sorgu sonucu direk json olarak alabilmemiz postgresql veritabanında mümkün.
Basit bir kaç örnek ile konuyu açıklamaya çalışalım. Sorgu sonucunu json formatına dönüştürmek için kullanacağım ile fonksiyon row_to_json dır. Fonksiyon bize tek satır halinde bir json çıktı üretir.
1 |
select row_to_json(words) from words; |
1 |
{"id":6013,"text":"advancement","pronunciation":"advancement",...} |
1 |
select row_to_json(row(id,text)) from words; |
1 |
{"f1":6013,"f2":"advancement"} |
1 2 3 4 |
select row_to_json(t) from ( select id, text from words ) t |
1 |
{"id":6013,"text":"advancement"} |
1 2 3 4 |
select array_to_json(array_agg(row_to_json(t))) from ( select id, text from words ) t |
1 |
[{"id":6001,"text":"abaissed"},{"id":6002,"text":"abbatial"},{"id":6003,"text":"abelia"},...] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
select row_to_json(t) from ( select text, pronunciation, ( select array_to_json(array_agg(row_to_json(d))) from ( select part_of_speech, body from definitions where word_id=words.id order by position asc ) d ) as definitions from words where text = 'autumn' )t |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
{ "text": "autumn", "pronunciation": "autumn", "definitions": [ { "part_of_speech": "noun", "body": "skilder wearifully uninfolded..." }, { "part_of_speech": "verb", "body": "intrafissural fernbird kittly..." }, { "part_of_speech": "adverb", "body": "infrugal lansquenet impolarizable..." } ] } |
Merhaba hocam,
Bu örnekleri kendi database imde kendi tablolarımla deniyorum. Hata veriyor. Postgresql 9.6 kullanıyorum
Nedeni ne olabilir acaba?
select row_to_json(row(id,text)) from words //olarak denerseniz çalışır 🙂