小编scr*_*ode的帖子

多个字段但只提取第一个键的值?

标题本来可以做得更好,但有时我的英语词汇量和我的 JSON 技能一样缺乏(尽管 jqplay.org 是一个有用的资源):(

任何人;我正在尝试提取该字段下的第一个用户名"accounts"。问题是,有多个条目(“someone”和“someoneelse”),我只需要列表中第一个键的值(“JQ_Newb”或“GOD”,具体取决于 JSON 的解析方式)。

JSON的内容如下:

{
  "accounts": {
    "someone": {
      "username": "JQ_Newb",
      "info": "stackoverflow"
    },
    "someoneelse": {
      "username": "GOD",
      "info": "heaven"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我一直在摆弄to_entries[]and select()(在 [] 和 () 之间有和没有值),但我得到的是:

{
  "key": "extra",
  "value": "stackoverflow"
}
{
  "key": "extra",
  "value": "heaven"
}
Run Code Online (Sandbox Code Playgroud)

和:

"JQ_Newb"
"GOD"
Run Code Online (Sandbox Code Playgroud)

使用.accounts[].username

长话短说

.accounts[]|to_entries[0]|select(i_dont_know_what_i'm_doing)
Run Code Online (Sandbox Code Playgroud)

如果 Stackoverflow 上已经有解决方案,很抱歉我找不到它。我已经尽力自己解决这个问题了。

谢谢,

版权

key jq

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

如何使FOR/F令牌更加通用(路径相关)

我的情况如下:

我已经在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders文件夹位置下提取了一个注册表值.

问题是代码适用于其中有空格的路径,但如果我对其中没有空格的路径使用相同的代码,则输出错误.

我知道它与之相关,tokens但我希望有一种方法可以使代码适用于这两种情况.

我目前的代码如下:

FOR /F "tokens=2*" %I in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Startup ') DO echo "%J"
Run Code Online (Sandbox Code Playgroud)

和输出:

"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
Run Code Online (Sandbox Code Playgroud)

在旁注:扩展%USERPROFILE%对我来说没问题,我只是使用CALL函数

现在,当将注册表值的路径更改为Startup其中没有任何空格的内容时,前面提到的代码将失败.

希望有人能够在两种情况下使其工作.

最诚挚的问候,

copyitright

cmd batch-file token

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

标签 统计

batch-file ×1

cmd ×1

jq ×1

key ×1

token ×1