2017-07-06 75 views

回答

3

JQ溶液:

jq '.meta.input as $meta | .body[] | select(.username == $meta).id' input.json 

输出:

"4444" 

  • .meta.input as $meta - 分配.meta.input键值为$meta变量来进行进一步的比较
+0

如果你只是想要id的实际文本,'-r'选项就可以实现。 –

0

这应该是这样简单:

var data = { 
 
    "body": [{ 
 
    "username": "name1", 
 
    "id": "4444" 
 
    }, { 
 
    "username": "name2", 
 
    "id": "5555" 
 
    }], 
 
    "meta": { 
 
    "input": "name1" 
 
    } 
 
}; 
 

 
function getID(data) { 
 
    var username = data.meta.input; 
 
    var userID; 
 

 
    for (i in data.body) { 
 
    
 
    if (data.body[i].username === username) { 
 
     userID = data.body[i].id; 
 
     break; 
 
    } 
 
    } 
 

 
    return userID; 
 
} 
 

 
var id = getID(data); 
 
alert(id);

相关问题