Lo primero es lo primero, soy nuevo en Javascript y en la codificación, por lo que si mi código no es tan ordenado o sucinto como podría ser, no dude en sugerir formas de ordenarlo.
He visto algunas preguntas similares a este tema, pero nada que haga lo que necesito específicamente.
Tengo un código JS que funciona bien que toma una entrada JSON y devuelve un valor específico:
var subtitle = document.getElementById("demo"); var title = document.getElementById("title_location"); var para1 = document.getElementById("para1"); navigator.geolocation.getCurrentPosition(showPosition); function showPosition(position) { var url = "https://api.opencagedata.com/geocode/v1/json?q=52.773322+-1.552661&key=592431a9da4a45b686bc75eafb005cc1" //Swadlincote (already a city so doesnt need replacing) fetch(url) .then(response => response.json()) .then(data => { console.log(data) console.log(data.results[0].components) var stringified = JSON.stringify(data); console.log("this is the stringified json before replacement: " + stringified) stringifiedR = stringified.replace('"town"', '"city"'); console.log("this is the stringified json after replacement: " + stringifiedR) var jsonObject = JSON.parse(stringifiedR); console.log(jsonObject) console.log("stringified city: : " + jsonObject.results[0].components.city) subtitle.innerHTML = "Subtitle goes here: " + jsonObject.results[0].components.city title.innerHTML = "Page Title Goes Here: " + jsonObject.results[0].components.city para1.innerHTML = "1st paragraph of text goes here: " + jsonObject.results[0].components.city }) }
Esto funciona bien y devuelve el valor de data.results[0].components.city, que es lo que necesito.
Lo que estoy buscando es una forma de verificar si la etiqueta 'país' en data.results[0].components.country coincide con "Reino Unido" antes de hacer algo con el script y si los datos coinciden, continúe con el resto de la secuencia de comandos, si la etiqueta 'país' coincide con otra cosa que no sea 'Reino Unido', detenga la secuencia de comandos.
¿Alguien tiene alguna idea que estaría feliz de compartir?
Gracias por adelantado:
Parece que solo necesitas hacer una comparación:
if (jsonObject.results[0].components.country === 'United Kingdom') { console.log('is United Kingdom') // rest of what you want to do } else { console.log('is not United Kingdom') }
También es posible que desee incorporar cierta flexibilidad (como hacer que la comparación no distinga entre mayúsculas y minúsculas en caso de que los datos devueltos no se hayan ingresado de forma limpia).
Más información sobre comparaciones: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness
También recomendaría no publicar públicamente sus claves de API (especialmente si tiene que pagar para usar una API o está limitado por un uso excesivo). Sería mejor publicar algunos ejemplos de JSON en este caso.