With jq, we can easily convert between JSON and JSON lines.

JSON -> JSON Lines

$ printf '[{"A":"B"},{"C":"D"}]' | jq -c .[]
{"A":"B"}
{"C":"D"}

Note: -c (--compact-output) option is important to put each JSON object on a single line.

JSON Lines -> JSON

$ printf '{"A":"B"}\n{"C":"D"}' | jq -s
[
  {
    "A": "B"
  },
  {
    "C": "D"
  }
]

-s (--slurp) option wraps the whole input into a large array.

Add -c (--compact-output) option to make the whole array on a single line.

$ printf '{"A":"B"}\n{"C":"D"}' | jq -cs
[{"A":"B"},{"C":"D"}]

Deal with JSON lines mixed with plain text

If you're dealing with programs which output JSON lines along with plain text, you can extract only the JSON lines with:

cat mixed.jsonl | jq -Rc 'fromjson?'

-R (--raw-input) parses each line of text as a string;
fromjson converts the string back into JSON object;
? tries to do the conversion and ignores those don't convert;
-c (--compact-output) puts each JSON object on a single line.