MCWS output is not necessarily formatted for human readability. Its in a specified formatting markup, for this particular call, either XML (in the MPL type, default), or JSON.
If you want a format with one entry per line, just running it through jq without parameters will do that, as its default mode is return a human-readable formatting.
Or you can use jq to specifically extract the value(s) you want.
Thanks. In my quest to find an alternative to the PlayingNow plugin, which I only use to get a file of data on track change and then call another program to update all the monitor/TV's with the current MC track/next info.
I've tried Zybec's McMonitor in C++ and got overwhelmed with notifications that I didn't need. For example on a natural track change, a few seconds before the actual track change I'd get a notification with the current track info but with the playcount and lastPlayed data updated. I worked around that one, but others showed up and my code got ugly. McMonitor was really cool and the fault is my coding, not McMonitor.
Then I tried polling MCWS from a C++ program and sometimes, I cannot duplicate it at will, I would get data from MCWS that did not change on a track change (must be my code somehow though, not blaming MCWS). When I see that, it's usually well over an hour of playing MC and my program running in a continuous 1 second sleep loop.
I've even considered using UNIX shell to do what I need.
I'm really trying, but I feel like I'm somehow in over my head. I have forgot so much since I retired from software 12 years ago.