Change Json text to json array

General Tech Bugs & Fixes 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

Currently in my table data is like this

 

Field name : author

Field Data : In json form

When we run select query SELECT bs.author FROM books bs; it returns data like this

"[{\"author_id\": 1, \"author_name\": \"It happend once again\", \"author_slug\": \"fiction-books\"}]"

But I need selected data should be like this

    [
        {
          "author_id": 1,
          "author_name": "It happend once again",
          "author_slug": "fiction-books"
        }
    ]

Database : PostgreSql

Note : Please avoid PHP code or iteration by PHP code

profilepic.png
manpreet 2 years ago

The answer depends on the version of PostgreSQL you are using and ALSO what client you are using but PostgreSQL has lots of builtin json processing functions.

https://www.postgresql.org/docs/10/functions-json.html

Your goal is also not clearly defined...If all you want to do is pretty print the json, this is included.

# select jsonb_pretty('[{"author_id": 1,"author_name":"It happend once again","author_slug":"fiction-books"}]') as json;
                      json
-------------------------------------------------
 [                                              +
     {                                          +
         "author_id": 1,                        +
         "author_name": "It happend once again",+
         "author_slug": "fiction-books"         +
     }                                          +
 ]

If instead you're looking for how to populate a postgres record set from json, this is also included:

# select * from json_to_recordset('[{"author_id": 1,"author_name":"It happend once again","author_slug":"fiction-books"}]')
as x(author_id text, author_name text, author_slug text);

 author_id |      author_name      |  author_slug
-----------+-----------------------+---------------
 1         | It happend once again | fiction-books

0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.