Another modern answer for an old question: Take a look at FracturedJson. That link will take you to the web version, but it's available as a commandline app, and libraries for .NET and JS.
FracturedJson will inline arrays/objects as long as they're neither too long nor too complex. It can likewise split arrays into multiple lines with multiple items per line.
Here's an example using the default settings, but you can adjust them to whatever works best for your data.
{
"SimpleItem": 77,
"ComplexObject": {
"Subthing1": {"X": 55, "Y": 19, "Z": -4},
"Subthing2": { "Q": null, "W": [-2, -1, 0, 1] },
"Distraction": [[], null, null]
},
"ShortArray": ["blue", "blue", "orange", "gray"],
"LongArray": [
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73,
79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157,
163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241,
251, 257, 263, 269, 271, 277, 281, 283, 293
],
"LongArray2": [
[19, 2],
[3, 8],
[14, 0],
[9, 9],
[9, 9],
[0, 3],
[10, 1],
[9, 1],
[9, 2],
[6, 13],
[18, 5],
[4, 11],
[12, 2]
]
}
Disclosure: I'm the author of FracturedJson. It's open source under an MIT license.