Supongamos que partimos de estos datos en formato JSON...
Código:
{"city":{"id":2513700,"name":"Moncofar","coord" :{" lon":-0.14701,"lat":39.809071},"country":"ES","populatio n":0},"cod":"200","message":0.0916,"cnt":1,"lis t":[{"dt":1487937600,"temp":{"day":6.92,"min":4.4," max ":6.92,"night":4.4,"eve":6.92,"morn":6.92},"pr essu re":983.35,"humidity":63,"weather":[{"id":800,"main":"Clear","description":"cielo claro","icon":"01n"}],"speed":2.95,"deg":326,"clouds":0}]}
Si los metemos en uno de esos visores que te he pasado antes verás su organización (la misma que está descrita con detalle en la documentación) en forma de árbol desplegable al estilo de la típica estructura de carpetas.
Si quieres obtener el nombre de la ciudad tiene que recorrer ese árbol desde su origen (object) hasta al valor que te interesa (name) como si fueses abriendo carpetas una detrás de otra...
ciudad=object.city.name
json1.png
Simplemente tienes que poner el nombre de cada rama de ese árbol separada con un punto.
Supongamos que ahora quieres saber la temperatura máxima (max)...
temp_max=object.list[0].temp.max
json2.png
Igual que antes se recorre el árbol desde su origen hasta el valor que te interesa separando cada rama con un punto. Lo único que cambia ahora es ese "list[0]". Si te fijas bien verás que detrás de "list" tienes un número entre corchetes "[1]". Eso indica que esa rama puede tener más de un bloque de datos colgando de ella y que en este caso sólo tiene 1. Esos bloques de datos se organizan como un array, y la forma de hacer referencia a cada elemento de un array es poner su número de índice entre corchetes. El número de índice del primer bloque de datos es ese "0" que cuelga de "list", lo que resulta en que esa rama será "list[0]", la siguiente sería "list[1]", y así sucesivamente.