我从API获得了以下JSON数据,我只想从中获取数组中的特定值:
以下是示例对象数据:
{
"matches":[
{
"parsedPerson":{
"personType":"NATURAL",
"personRole":"PRIMARY",
"mailingPersonRoles":[
"ADDRESSEE"
],
"gender":{
"gender":"MALE",
"confidence":0.9325842696629214
},
"addressingGivenName":"Brandyn",
"addressingSurname":"Kramer",
"outputPersonName":{
"terms":[
{
"string":"Brandyn",
"termType":"GIVENNAME"
},
{
"string":"Kramer",
"termType":"SURNAME"
}
]
}
},
"parserDisputes":[
],
"likeliness":0.9427026792672768,
"confidence":0.9433333333333334
}
],
"bestMatch":{
"parsedPerson":{
"personType":"NATURAL",
"personRole":"PRIMARY",
"mailingPersonRoles":[
"ADDRESSEE"
],
"gender":{
"gender":"MALE",
"confidence":0.9325842696629214
},
"addressingGivenName":"Brandyn",
"addressingSurname":"Kramer",
"outputPersonName":{
"terms":[
{
"string":"Brandyn",
"termType":"GIVENNAME"
},
{
"string":"Kramer",
"termType":"SURNAME"
}
]
}
},
"parserDisputes":[
],
"likeliness":0.9427026792672768,
"confidence":0.9433333333333334
}
}
例如,我想在
'termType=GIVENNAME' (Tom,Henry)
'termType=SURNAME' (Smith)
and 'gender' (MALE)
作为一个初学者,如果我想获得"性别",我会做以下事情:
var gender = data.bestMatch.parsedPerson.gender.gender
但我不认为这是正确的方法,我想用一个循环来获取数组中的所有数据,比如这样,或者可能是更好的方法:
var Given = [Tom,Henry]
var Surname = [Smith]
var gender = [MALE]
我试图使用以下代码片段来获取termType = GIVENNAME
的值,但它给出了未定义作为输出:
const findName = (obj, key) => {
const arr = obj['outputPersonName'];
if(arr.length){
const result = arr.filter(el => {
return el['termType'] === key;
});
if(result && result.length){
return result.string;
}
else{
return '';
}
}
}
console.log(findName(data.parsedPerson, 'GIVENNAME'));
任何指导都将不胜感激。
以下是如何从JSON数据中获取Surname
、Givenname
和Gender
:
var Name = {
"context" : {
"priority" : "REALTIME",
"properties" : [ ]
},
"inputPerson" : {
"type" : "NaturalInputPerson",
"personName" : {
"nameFields" : [ {
"string" : "Sample Name",
"fieldType" : "FULLNAME"
}]
},
"gender" : "UNKNOWN"
}
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(Name),
};
var response = UrlFetchApp.fetch(url,options).getContentText();
var data = JSON.parse(response);
var gender = data.bestMatch.parsedPerson.gender.gender;
var Given = data.bestMatch.parsedPerson.addressingGivenName;
var Surname = data.bestMatch.parsedPerson.addressingSurname;
试试看,让我知道它是否对你有效。