簡體   English   中英

如何使用jsawk從具有非字母數字字符的json對象的屬性中提取值

[英]How to use jsawk to extract value from property of json object with non alpha numeric characters

文件/tmp/t示例json文件內容

 [
    {
      "name:first"   : "trevor",
      "last"    : "wellington",
      "from"    : "england",
      "age"     : 52,
      "sports"  : [ "rugby", "badmitton", "snooker" ]
    },
    {
      "name:first"   : "yoni",
      "last"    : "halevi",
      "from"    : "israel",
      "age"     : 26,
      "sports"  : [ "soccer", "windsurfing" ]
    },
    {
      "name:first"   : "cory",
      "last"    : "parker",
      "from"    : "united states",
      "age"     : 31,
      "sports"  : [ "windsurfing", "baseball", "extreeeeme kayaking" ]
    }
  ]

這很好用cat /tmp/t | jsawk -n 'out(this.last)' cat /tmp/t | jsawk -n 'out(this.last)'

但這不會影響cat test.json | jsawk -n 'out(this.name:first)' cat test.json | jsawk -n 'out(this.name:first)'

可能與以下內容有關: 選擇密鑰中帶有冒號的JSON對象
以及如何使用jQuery訪問這些奇怪的JSON項目?

但是cat test.json | jsawk -n 'out(this.name[':first'])' cat test.json | jsawk -n 'out(this.name[':first'])'也不起作用

干得好:

... | jsawk -n 'out(this["name:first"])'

this.name:first不起作用,因為裸露的:不能位於對象屬性中。

例如,給定此JavaScript對象:

x = {
  "name:first"   : "cory",
  "last"    : "parker",
  "from"    : "united states",
  "age"     : 31,
  "sports"  : [ "windsurfing", "baseball", "extreeeeme kayaking" ]
}

這些是有效的:

  • x.lastx['last']
  • x.fromx['from']
  • ...
  • 但只有x['name:first']x.name:first不是)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM