1648789560
El manejo de datos es una tarea común para los desarrolladores front-end, y los datos suelen estar en formato JSON. SwiftyJSON es una biblioteca de terceros de código abierto que es útil para manejar datos JSON fácilmente en Swift. Al momento de escribir este artículo, el paquete tiene más de 21 000 estrellas en GitHub y se ha mantenido desde su lanzamiento inicial en 2014. Es compatible con las últimas versiones de Swift, Xcode e iOS. Hasta ahora, ha cubierto todas mis necesidades.
En este artículo, revisaremos cómo manejar datos JSON fácilmente en Swift con SwiftyJSON. Usaremos un proyecto de demostración con una interfaz de línea de comandos de macOS para recorrer el tutorial.
Para los ejemplos usados en este artículo, usaremos Swift v5, Xcode v13.2.1 y SwiftyJSON v5.0.1.
¡Empecemos!
Dado que una interfaz de usuario no es importante para este proyecto, crearemos y usaremos una herramienta de línea de comandos de macOS. Para crear una CLI para macOS, abra Xcode y haga clic en Crear un nuevo proyecto de Xcode . A continuación, en macOS, seleccione Herramienta de línea de comandos , luego haga clic en Siguiente y siga las instrucciones restantes.
Me gusta Pokémon, así que he decidido usarlo como tema del proyecto. En este proyecto, usaremos la API RESTful Pokemon . Solicitaremos datos para el personaje, Charmander, obteniendo este JSON: https://pokeapi.co/api/v2/pokemon/charmander .
Este artículo se centrará en el manejo de JSON, por lo que omitiremos el proceso de solicitud de datos JSON.
Para esta demostración, he usado URLSession de macOS para manejar las solicitudes HTTP, pero también puede usar Alamofire o Moya . Además, siempre puedes acceder al código en mi repositorio de GitHub . Después de obtener los datos, solicitaremos algunos de los atributos de Charmander (por ejemplo, nombre, habilidades y tipo) y luego los mostraremos en la salida de la terminal.
La salida del terminal se verá así:
Empecemos.
Foto de Akin Cakiner en Unsplash.
Para usar una biblioteca de terceros, debemos importar ese paquete en nuestro proyecto. Por lo tanto, nuestro primer paso es agregar el paquete SwiftyJSON a nuestro proyecto; Usaremos el Administrador de paquetes Swift .
Here’s our path: Xcode > ( Xcode project name) > Targets > (Xcode project name).
En la pestaña General, en el menú desplegable Marcos y bibliotecas, hacemos clic en + y seleccionamos Agregar dependencia del paquete . Luego, ingresamos la URL del paquete Git: https://github.com/SwiftyJSON/SwiftyJSON.git .
Una vez que el paquete se haya agregado con éxito, veremos SwiftyJSON en Framework, así como en Dependencias del paquete en Project Navigator:
Ahora, estamos listos para escribir algo de código. Para comenzar, usaremos un fragmento de nuestros datos JSON:
"name": "charmander",
"order": 5,
"past_types": [],
...
Crearemos un objeto JSON que incluya el name
atributo de los datos. Luego, crearemos una función para obtener el name
atributo para que podamos acceder a él:
func getName(data: Data) {
if let json = try? JSON(data: data) {
let name = json["name"].string ?? "N/A"
print("Name: \(name)")
}
}
Cuando llamamos a la getName
función, obtenemos el siguiente resultado:
Nombre: charmander
Ahora, trabajemos con el JSON anidado de nuestra solicitud HTTP de Charmander:
"abilities": [
{
"ability": {
"name": "blaze",
"url": "<https://pokeapi.co/api/v2/ability/66/>"
},
"is_hidden": false,
"slot": 1
},
{
"ability": {
"name": "solar-power",
"url": "<https://pokeapi.co/api/v2/ability/94/>"
},
"is_hidden": true,
"slot": 3
}
],
{...}
Crearemos una función para obtener el abilities
atributo de los datos de Charmander. Anteriormente, creamos un objeto JSON, pero ahora tenemos una matriz de objetos. Tendremos que rastrear la abilities
matriz y obtener el name
atributo de cada uno ability
.
func getAbilities(data: Data) {
if let json = try? JSON(data: data) {
for (_, abilities) in json["abilities"] {
let ability = abilities\["ability"\]["name"].string ?? "N/A"
print("Ability: \(ability)")
}
}
}
Cuando llamamos a la getAbilities
función, obtenemos el siguiente resultado:
Habilidad: resplandor
Habilidad: energía solar
Similar a abilities
, también tenemos el types
atributo. Luego, dentro del objeto, tenemos un type
objeto con un name
atributo. Podemos ver ambos atributos en el siguiente fragmento de JSON:
"types": [
{
"slot": 1,
"type": {
"name": "fire",
"url": "https://pokeapi.co/api/v2/type/10/"
}
}
]
Ahora, rastrearemos la types
matriz y obtendremos el name
atributo de cada uno type
.
func getType(data: Data) {
if let json = try? JSON(data: data) {
for (_, types) in json["types"] {
let type = types\["type"\]["name"].string ?? "N/A"
print("Type: \(type)")
}
}
}
Cuando llamamos a la getType
función, obtenemos el siguiente resultado:
Tipo: fuego
En Swift, tenemos que usar tipeo explícito. El beneficio de esto es que es menos probable que cometamos errores. La desventaja es que no es muy flexible.
Por ejemplo, cuando buscamos datos JSON, creamos los atributos declarando su tipo de datos. Si el tipo de datos cambia desde el lado del servidor, no podremos analizar los datos JSON y la aplicación fallará. Afortunadamente, SwiftyJSON nos ayuda a solucionar este problema.
Veamos un ejemplo.
En el siguiente fragmento de código, especificamos que el tipo de datos es un archivo string
. También podríamos especificar que debe ser un número entero; el punto aquí es que el código indica que debe ser del tipo que estamos especificando.
let ability = abilities\["ability"\]["name"].string!
En este ejemplo, siempre que el tipo de datos sea realmente un string
, todo está bien. Pero si el tipo de datos cambia, el valor se convierte en cero y la aplicación fallará.
Ahora, veamos el mismo ejemplo, pero esta vez usaremos un nil
operador -coalescing para acomodar cualquier posible cambio en el tipo de datos:
let ability = abilities\["ability"\]["name"].string ?? "N/A"
En el fragmento anterior, verificamos si el tipo de datos es un string
. Si no es un string
, se devuelve el valor "N/A". La aplicación no falla. Por supuesto, no está limitado a "N/A", puede usar cualquier designación que desee.
En este artículo, revisamos cómo manejar JSON en Swift con SwiftyJSON y discutimos cómo manejar problemas de tipos. Repasamos los ejemplos del artículo usando una demostración con una interfaz de línea de comandos de macOS.
Espero que hayas disfrutado este artículo. Vaya a GitHub para ver el proyecto de muestra que hice para este artículo. No dude en comunicarse conmigo en hi@iremkaraoglu.com o en la sección de comentarios a continuación. Agradezco sus valiosos comentarios. ¡Cuídate! ✨
Fuente: https://blog.logrocket.com/easily-handle-json-swift-swiftyjson/
1648789560
El manejo de datos es una tarea común para los desarrolladores front-end, y los datos suelen estar en formato JSON. SwiftyJSON es una biblioteca de terceros de código abierto que es útil para manejar datos JSON fácilmente en Swift. Al momento de escribir este artículo, el paquete tiene más de 21 000 estrellas en GitHub y se ha mantenido desde su lanzamiento inicial en 2014. Es compatible con las últimas versiones de Swift, Xcode e iOS. Hasta ahora, ha cubierto todas mis necesidades.
En este artículo, revisaremos cómo manejar datos JSON fácilmente en Swift con SwiftyJSON. Usaremos un proyecto de demostración con una interfaz de línea de comandos de macOS para recorrer el tutorial.
Para los ejemplos usados en este artículo, usaremos Swift v5, Xcode v13.2.1 y SwiftyJSON v5.0.1.
¡Empecemos!
Dado que una interfaz de usuario no es importante para este proyecto, crearemos y usaremos una herramienta de línea de comandos de macOS. Para crear una CLI para macOS, abra Xcode y haga clic en Crear un nuevo proyecto de Xcode . A continuación, en macOS, seleccione Herramienta de línea de comandos , luego haga clic en Siguiente y siga las instrucciones restantes.
Me gusta Pokémon, así que he decidido usarlo como tema del proyecto. En este proyecto, usaremos la API RESTful Pokemon . Solicitaremos datos para el personaje, Charmander, obteniendo este JSON: https://pokeapi.co/api/v2/pokemon/charmander .
Este artículo se centrará en el manejo de JSON, por lo que omitiremos el proceso de solicitud de datos JSON.
Para esta demostración, he usado URLSession de macOS para manejar las solicitudes HTTP, pero también puede usar Alamofire o Moya . Además, siempre puedes acceder al código en mi repositorio de GitHub . Después de obtener los datos, solicitaremos algunos de los atributos de Charmander (por ejemplo, nombre, habilidades y tipo) y luego los mostraremos en la salida de la terminal.
La salida del terminal se verá así:
Empecemos.
Foto de Akin Cakiner en Unsplash.
Para usar una biblioteca de terceros, debemos importar ese paquete en nuestro proyecto. Por lo tanto, nuestro primer paso es agregar el paquete SwiftyJSON a nuestro proyecto; Usaremos el Administrador de paquetes Swift .
Here’s our path: Xcode > ( Xcode project name) > Targets > (Xcode project name).
En la pestaña General, en el menú desplegable Marcos y bibliotecas, hacemos clic en + y seleccionamos Agregar dependencia del paquete . Luego, ingresamos la URL del paquete Git: https://github.com/SwiftyJSON/SwiftyJSON.git .
Una vez que el paquete se haya agregado con éxito, veremos SwiftyJSON en Framework, así como en Dependencias del paquete en Project Navigator:
Ahora, estamos listos para escribir algo de código. Para comenzar, usaremos un fragmento de nuestros datos JSON:
"name": "charmander",
"order": 5,
"past_types": [],
...
Crearemos un objeto JSON que incluya el name
atributo de los datos. Luego, crearemos una función para obtener el name
atributo para que podamos acceder a él:
func getName(data: Data) {
if let json = try? JSON(data: data) {
let name = json["name"].string ?? "N/A"
print("Name: \(name)")
}
}
Cuando llamamos a la getName
función, obtenemos el siguiente resultado:
Nombre: charmander
Ahora, trabajemos con el JSON anidado de nuestra solicitud HTTP de Charmander:
"abilities": [
{
"ability": {
"name": "blaze",
"url": "<https://pokeapi.co/api/v2/ability/66/>"
},
"is_hidden": false,
"slot": 1
},
{
"ability": {
"name": "solar-power",
"url": "<https://pokeapi.co/api/v2/ability/94/>"
},
"is_hidden": true,
"slot": 3
}
],
{...}
Crearemos una función para obtener el abilities
atributo de los datos de Charmander. Anteriormente, creamos un objeto JSON, pero ahora tenemos una matriz de objetos. Tendremos que rastrear la abilities
matriz y obtener el name
atributo de cada uno ability
.
func getAbilities(data: Data) {
if let json = try? JSON(data: data) {
for (_, abilities) in json["abilities"] {
let ability = abilities\["ability"\]["name"].string ?? "N/A"
print("Ability: \(ability)")
}
}
}
Cuando llamamos a la getAbilities
función, obtenemos el siguiente resultado:
Habilidad: resplandor
Habilidad: energía solar
Similar a abilities
, también tenemos el types
atributo. Luego, dentro del objeto, tenemos un type
objeto con un name
atributo. Podemos ver ambos atributos en el siguiente fragmento de JSON:
"types": [
{
"slot": 1,
"type": {
"name": "fire",
"url": "https://pokeapi.co/api/v2/type/10/"
}
}
]
Ahora, rastrearemos la types
matriz y obtendremos el name
atributo de cada uno type
.
func getType(data: Data) {
if let json = try? JSON(data: data) {
for (_, types) in json["types"] {
let type = types\["type"\]["name"].string ?? "N/A"
print("Type: \(type)")
}
}
}
Cuando llamamos a la getType
función, obtenemos el siguiente resultado:
Tipo: fuego
En Swift, tenemos que usar tipeo explícito. El beneficio de esto es que es menos probable que cometamos errores. La desventaja es que no es muy flexible.
Por ejemplo, cuando buscamos datos JSON, creamos los atributos declarando su tipo de datos. Si el tipo de datos cambia desde el lado del servidor, no podremos analizar los datos JSON y la aplicación fallará. Afortunadamente, SwiftyJSON nos ayuda a solucionar este problema.
Veamos un ejemplo.
En el siguiente fragmento de código, especificamos que el tipo de datos es un archivo string
. También podríamos especificar que debe ser un número entero; el punto aquí es que el código indica que debe ser del tipo que estamos especificando.
let ability = abilities\["ability"\]["name"].string!
En este ejemplo, siempre que el tipo de datos sea realmente un string
, todo está bien. Pero si el tipo de datos cambia, el valor se convierte en cero y la aplicación fallará.
Ahora, veamos el mismo ejemplo, pero esta vez usaremos un nil
operador -coalescing para acomodar cualquier posible cambio en el tipo de datos:
let ability = abilities\["ability"\]["name"].string ?? "N/A"
En el fragmento anterior, verificamos si el tipo de datos es un string
. Si no es un string
, se devuelve el valor "N/A". La aplicación no falla. Por supuesto, no está limitado a "N/A", puede usar cualquier designación que desee.
En este artículo, revisamos cómo manejar JSON en Swift con SwiftyJSON y discutimos cómo manejar problemas de tipos. Repasamos los ejemplos del artículo usando una demostración con una interfaz de línea de comandos de macOS.
Espero que hayas disfrutado este artículo. Vaya a GitHub para ver el proyecto de muestra que hice para este artículo. No dude en comunicarse conmigo en hi@iremkaraoglu.com o en la sección de comentarios a continuación. Agradezco sus valiosos comentarios. ¡Cuídate! ✨
Fuente: https://blog.logrocket.com/easily-handle-json-swift-swiftyjson/
1625637060
In this video, we work with JSONs, which are a common data format for most web services (i.e. APIs). Thank you for watching and happy coding!
Need some new tech gadgets or a new charger? Buy from my Amazon Storefront https://www.amazon.com/shop/blondiebytes
What is an API?
https://youtu.be/T74OdSCBJfw
JSON Google Extension
https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=en
Endpoint Example
http://maps.googleapis.com/maps/api/geocode/json?address=13+East+60th+Street+New+York,+NY
Check out my courses on LinkedIn Learning!
REFERRAL CODE: https://linkedin-learning.pxf.io/blondiebytes
https://www.linkedin.com/learning/instructors/kathryn-hodge
Support me on Patreon!
https://www.patreon.com/blondiebytes
Check out my Python Basics course on Highbrow!
https://gohighbrow.com/portfolio/python-basics/
Check out behind-the-scenes and more tech tips on my Instagram!
https://instagram.com/blondiebytes/
Free HACKATHON MODE playlist:
https://open.spotify.com/user/12124758083/playlist/6cuse5033woPHT2wf9NdDa?si=VFe9mYuGSP6SUoj8JBYuwg
MY FAVORITE THINGS:
Stitch Fix Invite Code: https://www.stitchfix.com/referral/10013108?sod=w&som=c
FabFitFun Invite Code: http://xo.fff.me/h9-GH
Uber Invite Code: kathrynh1277ue
Postmates Invite Code: 7373F
SoulCycle Invite Code: https://www.soul-cycle.com/r/WY3DlxF0/
Rent The Runway: https://rtr.app.link/e/rfHlXRUZuO
Want to BINGE?? Check out these playlists…
Quick Code Tutorials: https://www.youtube.com/watch?v=4K4QhIAfGKY&index=1&list=PLcLMSci1ZoPu9ryGJvDDuunVMjwKhDpkB
Command Line: https://www.youtube.com/watch?v=Jm8-UFf8IMg&index=1&list=PLcLMSci1ZoPvbvAIn_tuSzMgF1c7VVJ6e
30 Days of Code: https://www.youtube.com/watch?v=K5WxmFfIWbo&index=2&list=PLcLMSci1ZoPs6jV0O3LBJwChjRon3lE1F
Intermediate Web Dev Tutorials: https://www.youtube.com/watch?v=LFa9fnQGb3g&index=1&list=PLcLMSci1ZoPubx8doMzttR2ROIl4uzQbK
GitHub | https://github.com/blondiebytes
Twitter | https://twitter.com/blondiebytes
LinkedIn | https://www.linkedin.com/in/blondiebytes
#jsons #json arrays #json objects #what is json #jsons tutorial #blondiebytes
1600430400
Swift is a fast and efficient general-purpose programming language that provides real-time feedback and can be seamlessly incorporated into existing Objective-C code. This is why developers are able to write safer, more reliable code while saving time. It aims to be the best language that can be used for various purposes ranging from systems programming to mobile as well as desktop apps and scaling up to cloud services.
Below here, we list down the 10 best online resources to learn Swift language.
(The list is in no particular order)
#developers corner #free online resources to learn swift language #learn swift #learn swift free #learn swift online free #resources to learn swift #swift language #swift programming
1609999986
A thoroughly researched list of top Swift developers with ratings & reviews to help find the best Swift development companies around the world.
#swift development service providers #best swift development companies #top swift development companies #swift development solutions #top swift developers #swift
1594193714
Want to create a native iOS application for your Startup?
Hire Dedicated Swift Developers for end-to-end services like development, migration, upgrade, testing, and support & maintenance. Trust HourlyDeveloper.io our Swift development team for iOS device apps that are high on performance and security.
Consult with experts:- https://bit.ly/2C5M6cz
#hire dedicated swift developers #swift developers #swift development company #swift development services #swift development #swift