2017-10-13 3 views
2

Je ne suis pas sûr si cela est possible, parce que je ne l'ai pas trouvé quoi que ce soit sur ce .. je vais à travers un objet JSON ..Trouver si un JSON valeur contient un certain texte

{"name": "zack", 
"message": "hello", 
"time": "US 15:00:00"}, 

{"name": "zack", 
"message": "hello", 
"time": "US 00:00:00"} 

est-il une manière que je peux choisir la propriété de temps qui contient juste la partie "15:00:00"?

Merci pour l'aide

+0

Pourriez-vous être un peu plus clair sur ce que vous voulez dire? Que voulez-vous dire par sélectionner? –

Répondre

1

Comme je comprends si vous analysez votre JSON vous avez un tableau d'objet. Ainsi, vous pouvez utiliser la fonction filter et filtrer les éléments qui ne correspondent pas aux critères que vous passez en fonction de filtre:

var parsedJson = [{"name": "zack", 
 
"message": "hello", 
 
"time": "US 15:00:00"},{"name": "zack", 
 
"message": "hello", 
 
"time": "US 00:00:00"}]; 
 
    
 
var result = parsedJson.filter(item=>item.time === "US 15:00:00"); 
 
    
 
console.log(result); 
 

1

Vous pouvez utiliser le tableau # fonction de filtre. Il retournera un nouveau tableau avec l'élément correspondant. Si la longueur du nouveau tableau est 0, aucune correspondance n'a été trouvée

var myJson = [{ 
 
    "name": "zack", 
 
    "message": "hello", 
 
    "time": "US 15:00:00" 
 
    }, 
 

 
    { 
 
    "name": "zack", 
 
    "message": "hello", 
 
    "time": "US 00:00:00" 
 
    } 
 
] 
 

 
var m = myJson.filter(function(item) { 
 
    return item.time === "US 15:00:00" 
 

 
}) 
 

 
console.log(m)

findIndex peut également être utilisé pour trouver si elle contient la valeur. Si la valeur est -1 ce que cela signifie le tableau JSON ne contient aucun objet répondant aux critères

var myJson = [{ 
 
    "name": "zack", 
 
    "message": "hello", 
 
    "time": "US 15:00:00" 
 
    }, 
 

 
    { 
 
    "name": "zack", 
 
    "message": "hello", 
 
    "time": "US 00:00:00" 
 
    } 
 
] 
 

 
var m = myJson.findIndex(function(item) { 
 
    return item.time === "US 15:00:00" 
 

 
}); 
 
console.log(m)

1
var arr = [{ 
    "name": "zack", 
    "message": "hello", 
    "time": "US 15:00:00" 
}, { 
    "name": "zack", 
    "message": "hello", 
    "time": "US 00:00:00" 
}] 

for (var i = 0; i < arr.length; i++) { 
    var time = (arr[i].time.split('US '))[1]; 
    console.log(time); 
} 

Si le symbole trouvé utile comme utile.

1

Vous pouvez utiliser la fonction filter pour filtrer la matrice et utiliser indexOf pour vérifier si la zone time contient 15:00:00 ou non.

par exemple:

var json = [{ 
    "name": "zack", 
    "message": "hello", 
    "time": "US 15:00:00" 
    }, 

    { 
    "name": "zack", 
    "message": "hello", 
    "time": "US 00:00:00" 
    } 
]; 


var resultObj = json.filter(item=>item.time.indexOf("15:00:00") !== -1); 
console.log(resultObj);