4

I have the following string in bash

"3.8,3.9,3.10" 

Is there a way using shell to convert it into a json array, i.e.

["3.8", "3.9", "3.10"] 

    1 Answer 1

    8

    Since the string (including its double quotes) seems to be a properly formatted JSON string, we could pass it, as JSON, to the JSON processor jq and split it on the commas:

    $ echo '"3.8,3.9,3.10"' | jq 'split(",")' [ "3.8", "3.9", "3.10" ] 

    Use jq with -c to get "compact output":

    $ echo '"3.8,3.9,3.10"' | jq -c 'split(",")' ["3.8","3.9","3.10"] 

    Giving it to an internal jq variable on the command line and then splitting that variable's value:

    $ jq -c -n --argjson str '"3.8,3.9,3.10"' '$str|split(",")' ["3.8","3.9","3.10"] 

      You must log in to answer this question.

      Start asking to get answers

      Find the answer to your question by asking.

      Ask question

      Explore related questions

      See similar questions with these tags.