我有一些看起来像这样的json数据:
{
"p": {
"d": {
"a" : {
"r": "foo",
"g": 1
},
"b": {
"r": "bar",
"g": 2
}
},
"c": {
"e": {
"r": "baz",
"g": 1
}
},
...
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的东西:
{
"d": [
"a",
"b"
],
"c": [
"e"
]
}
Run Code Online (Sandbox Code Playgroud)
我可以在第一级"p"下获取键列表,jq '.p|keys'在第二级使用结构和键jq '.p|map(.|keys)',但我无法弄清楚如何组合它.
我正在玩perl的rand(),并注意到当提供大于2 ^ 32的参数时,输出的最后几位变得可预测.
我发现说明它的最清晰的方法是使用以下脚本:
srand(); for $i (1..10) { printf "%4x\n",rand(2**48)%2**16 }
Run Code Online (Sandbox Code Playgroud)
每当我执行输出时
5101
6378
2a23
62f2
8d15
effc
9657
2d16
f669
40c0
Run Code Online (Sandbox Code Playgroud)
(这不只是前10个值,但我没有看到复制一长串"随机"数字的观点)
对srand()的调用是多余的,但它可以很容易地提供一个参数,并且看到它不会改变任何东西.
我试过这个:
我知道rand()不应该是加密安全的,但是可预测的最后16位比我理解的更糟糕.我使用的任何功能都错了吗?