我想要一台JSON漂亮的打印机,可以识别阵列或物体何时适合一条线并且只是这样做。例如:
{
"fits": ["JSON", "pretty", "printer"],
"longer": [
"???????????????????????????????????????????????????",
"???????????????????????????????????????????????????",
"???????????????????????????????????????????????????",
"???????????????????????????????????????????????????",
"???????????????????????????????????????????????????"
]
}
是否有像这样的独立库?如果没有,我将如何写一个?
我最感兴趣的是JavaScript实现。
答案 0 :(得分:0)
我不知道任何这种简洁的JSON打印机,但如果您想要自己制作自己应该不难:
for(property in object)
迭代给定对象的属性。
hasOwnProperty
进行过滤。typeof
答案 1 :(得分:0)
由于JSON主要是一种数据传输格式,我认为你的意思是在浏览器中查看原始JSON?如果是这样,那么有几个选择:
如果您需要进一步定制,您应该能够深入了解最后三个来源。我首先遍历value.length
属性,其中value
是数组元素,看看是否可以将输出限制为单行。
答案 2 :(得分:0)
使用replacer function将每个键/值对中的字符总数与固定长度进行比较。这是一个简单的例子:
function replacer(key, value)
{
var key_arr = [];
var value_arr = [];
var i = 0;
for (_ in value)
{
key_arr.push(_);
value_arr.push(value[_]);
}
for(;i < value_arr.length;i++)
{
if (key_arr[i].length + value_arr[i].length < 80)
{
console.log(key_arr[i] + ":" + "\t" + value_arr[i])
}
else
{
console.log(key_arr[i] + ":" + "\n" + value_arr[i])
}
}
}
用法:
var json;
json = {"foo":"1","bar":"2"},
JSON.stringify(json, replacer, 4);
json = {"foo":"12345678901234567890123456789012345678901234567890123456789012345678901234567890","bar":"2"};
JSON.stringify(json, replacer, 4);