J'ai un objet JSON et je veux vérifier que la clé est définie dans cet objet JSON
Voici un objet JSON
var Data_Array = {
"Private": {
"Price": {
"Adult": "18",
"Child": [{
"FromAge": "0",
"ToAge": "12",
"Price": "10"
}]
}
}
}
Si un objet JSON comme celui-ci, comme vous pouvez le constater, Child n'existe pas, comment le vérifier
var Data_Array = {
"Private": {
"Price": {
"Adult": "18"
}
}
}
J'ai essayé
if(Data_Array.Private.Price.Child[0].Price != "undefined"){
...
}
Mais il me montre cette erreur
Uncaught TypeError: Impossible de lire la propriété
Je ne suis pas capable de savoir ce que je devrais faire.
var json = {key1: 'value1', key2: 'value2'}
"key1" in json ? console.log('key exists') : console.log('unknown key')
"key3" in json ? console.log('key exists') : console.log('unknown key')
pour clé enfant
var Data_Array = {
"Private": {
"Price": {
"Adult": "18",
"Child": [{
"FromAge": "0",
"ToAge": "12",
"Price": "10"
}]
}
}
}
'Child' in Data_Array.Private.Price ? console.log('Child detected') : console.log('Child missing')
créer un enfant variable
var Data_Array = {
"Private": {
"Price": {
"Adult": "18",
"Child": [{
"FromAge": "0",
"ToAge": "12",
"Price": "10"
}]
}
}
}
var child = 'Child' in Data_Array.Private.Price && Data_Array.Private.Price.Child[0] || 'there is no child'
console.log(child)
s'il n'y a pas d'enfant
var Data_Array = {
"Private": {
"Price": {
"Adult": "18"
}
}
}
var child = 'Child' in Data_Array.Private.Price && Data_Array.Private.Price.Child[0] || 'there is no child'
console.log(child)
Essayer d'obtenir une propriété d'un objet qui n'est pas défini lève une exception. Vous devez vérifier chaque propriété pour l'existence (et le type) tout au long de la chaîne (sauf si vous êtes sûr de la structure).
Utiliser Lodash:
if(_.has(Data_Array, 'Private.Price.Child')) {
if(Array.isArray(Data_Array.Private.Price.Child) && Data_Array.Private.Price.Child.length && Data_Array.Private.Price.Child[0].Price) {
// Its has a price!
}
}
Vous pouvez utiliser l'opérateur in
pour un objet.
L'opérateur
in
renvoietrue
si la propriété spécifiée est dans l'objet spécifié.
if ('Child' in Data_Array.Private.Price) {
// more code
}
Vérifier si l'enfant n'est pas défini
if (typeof Data_Array.Private.Price.Child!== "undefined") {
...
}
Ou vous pouvez utiliser in
:
if ("Child" in Data_Array.Private.Price) {
...
}
Ou vous pouvez utiliser _.isUndefined(Data_Array.Private.Price.Child)
de underscore.js