小编Par*_*gon的帖子

jq 将对象键值映射到包含两者的对象数组

我想将对象父键放入对象本身并将每个键值对转换为数组

鉴于:

{
  "field1": {
    "key1": 11,
    "key2": 10
  },
  "field2": {
    "key1": 11,
    "key2": 10
  }
}
Run Code Online (Sandbox Code Playgroud)

所需输出

[
   {"name": "field1", "key1": 11, "key2": 10},
   {"name": "field2", "key1": 11, "key2": 10}
]
Run Code Online (Sandbox Code Playgroud)

我知道这jq keys会给我["field1", "field2"]并且jq '[.[]]'会给我

[
  { "key1": 11, "key2": 10 },
  { "key1": 11, "key2": 10 }
]
Run Code Online (Sandbox Code Playgroud)

我无法找到将它们结合起来的方法,我该怎么做?

json flatten jq

2
推荐指数
1
解决办法
4848
查看次数

getchar()函数的奇怪行为

我正在尝试编写一个将数据存储在文本文件中的函数,使用fopen("filename","w")where"filename"是用户输入的字符串.我已选择通过该getchar()功能这样做,我需要一个计数器变量,每次击键都会增加.这是令人费解和困惑的地方.

   char *p;
   int count = 0; 
   p = (char*)malloc(32*sizeof(char));
   do 
   {
       *p = getchar();
       count++;
   }
   while(getchar() != '\n');
Run Code Online (Sandbox Code Playgroud)

直到输入3个字符,它只需按1次Enter键,计数器就准确到2个字符后,它跟随一个奇怪的模式.

--------------------Input------------------------Count--------------------
-------------------- t --------------------------  1  --------------------
-------------------- te -------------------------  2  --------------------
-------------------- tes  -----------------------  2  --------------------
-------------------- test ------------------------ 3 ---------------------
-------------------- test1 ----------------------- 3 ---------------------
-------------------- test12 ---------------------- 4 ---------------------
-------------------- test123 --------------------- 4 ---------------------
-------------------- test1234 -------------------- 5 ---------------------
Run Code Online (Sandbox Code Playgroud)

基本上,对于每2个额外的字符,计数增加1.

该功能如何在此上下文中工作,为什么需要2次击键?

c getchar

0
推荐指数
1
解决办法
116
查看次数

标签 统计

c ×1

flatten ×1

getchar ×1

jq ×1

json ×1