I'm trying to append an element to my JSON object. Structure of JSON is as follows:
[
{
"newId": "167249-20",
"title": "El Supremo ordena reabrir la causa por los delitos fiscales de Carlos Fabra",
"created": "2011-12-01T13:22:00+01:00",
"priority": "99999",
"primaryCategoryId": "305",
"summary": "La sala de lo penal de este órgano ha dejado sin efecto el archivo por prescripción de cuatro de los cinco delitos fiscales que se le imputan al expresidente de la Diputación de Castellón.",
"image": "http%3A%2F%2Fwww.heraldo.es%2Fuploads%2Fimagenes%2Frec15%2F_reaperuradelcasofabra9558214_d07227b1.jpg",
"timestamp": "1322742120"
},
{
"newId": "167233-20",
"title": "Victoria Rodríguez y Claire Morel se imponen en el Open de Andorra",
"created": "2011-12-01T13:11:00+01:00",
"priority": "5",
"primaryCategoryId": "307",
"summary": "Las patinadoras del Aramón Jaca y del CETDI, Victoria Rodríguez Long y Claire Morel se impusieron en sus respectivas categorías en el Open de Andorra de Patinaje sobre hielo disputado el pasado fin de semana en la pista de Canillo.",
"image": "",
"timestamp": "1322741460"
}
]
so I want to add and extra attribute (imageLocation) as follows:
[
{
"newId": "167249-20",
"title": "El Supremo ordena reabrir la causa por los delitos fiscales de Carlos Fabra",
"created": "2011-12-01T13:22:00+01:00",
"priority": "99999",
"primaryCategoryId": "305",
"summary": "La sala de lo penal de este órgano ha dejado sin efecto el archivo por prescripción de cuatro de los cinco delitos fiscales que se le imputan al expresidente de la Diputación de Castellón.",
"image": "http%3A%2F%2Fwww.heraldo.es%2Fuploads%2Fimagenes%2Frec15%2F_reaperuradelcasofabra9558214_d07227b1.jpg",
"timestamp": "1322742120",
"imageLocation:" "xxx/xxx/xxx/xxx/xxx/xxx/jpg"
},
{
"newId": "167233-20",
"title": "Victoria Rodríguez y Claire Morel se imponen en el Open de Andorra",
"created": "2011-12-01T13:11:00+01:00",
"priority": "5",
"primaryCategoryId": "307",
"summary": "Las patinadoras del Aramón Jaca y del CETDI, Victoria Rodríguez Long y Claire Morel se impusieron en sus respectivas categorías en el Open de Andorra de Patinaje sobre hielo disputado el pasado fin de semana en la pista de Canillo.",
"image": "",
"timestamp": "1322741460",
"imageLocation:" "xxx/xxx/xxx/xxx/xxx/xxx/jpg"
}
]
If you have parsed your JSON string into javascript object named jsonObj, you can easily loop through collection and add the new property:
for (int i = 0; i<jsonObj.length;i++)
{
var singleItem = jsonObj[0];
singleItem.imageLocation = "http://someUrl/" + singleItem.newId; // example
}
If you then need to get JSON as string, use JSON.stringify(jsonObj).
If you haven't parsed you JSON string to Javascript object, you can do it easily:
var jsonObj = JSON.parse(jsonString);
You've talked about a "JSON object," but my guess is that you're not dealing with strings (JSON), you're actually dealing with the deserialized JavaScript object (and array).
If so, just loop through the array and assign the new property to the objects:
var index;
for (index = 0; index < array.length; ++index) {
array[index].imageLocation = /* ...value here */;
}
...where array is a reference to the array you've quoted in your question.
Related
I want to list a lot of arrays from another file,
when I do a "for" to read any array inside.
The code compile do all the list, but when finish the last the code gave me is undefined. How do I fix that?.
I put images from the code. I let you both codes if you want
{
"movies": [
{
"original_title": "Joker",
"title": "Joker",
"vote_average": 8.6,
"overview": "Arthur Fleck es un hombre ignorado por la sociedad, cuya motivación en la vida es hacer reír. Pero una serie de trágicos acontecimientos le llevarán a ver el mundo de otra forma. Película basada en Joker, el popular personaje de DC Comics y archivillano de Batman, pero que en este film toma un cariz más realista y oscuro.",
"release_date": "2019-10-04"
},
{
"original_title": "Maleficent: Mistress of Evil",
"title": "Maléfica: Maestra del Mal",
"vote_average": 7.2,
"overview": "Secuela de \"Maléfica\" que cuenta la vida de Maléfica y Aurora, así como las alianzas que formarán para sobrevivir a las amenazas del mágico mundo en el que habitan.",
"release_date": "2019-10-18"
},
{
"original_title": "Terminator: Dark Fate",
"title": "Terminator: Destino Oscuro",
"vote_average": 6.8,
"overview": "Sarah Connor une todas sus fuerzas con una mujer cyborg para proteger a una joven de un extremadamente poderoso y nuevo Terminator.",
"release_date": "2019-11-01"
},
{
"original_title": "The Lion King",
"title": "El rey león",
"vote_average": 7.1,
"overview": "Un remake del clásico animado de Disney de 1994 'El rey león' que estará dirigido por Jon Favreu. Simba (Donald Glover) es el hijo del rey de los leones, Mufasa, y heredero de todo el reino. Pero cuando su padre es brutalmente asesinado por su tío Scar, decidirá huir, dejando vía libre para que su tío tome el puesto de su padre como líder pelisonline.co de la manada. En su camino, Simba se encuentra con el suricato pelisonline.co Timón y el jabalí Pumba, que le enseñarán a vivir la vida sin preocupaciones. Pero el joven león se verá obligado a decidir entre su vida libre de problemas o su destino como rey .",
"release_date": "2019-07-18"
},
{
"original_title": "葉問4",
"title": "Ip Man 4",
"vote_average": 5.4,
"overview": "Ip Man, el título de la cuarta película que seguirá contando la vida del mítico maestro de Bruce Lee, lanzó su primer tráiler, que se ha vuelto viral y ha sido reproducido miles de veces en YouTube. Para muchos seguidores del cine de artes marciales, Ip Man es un de las mejores sagas del género. La película volverá a ser protagonizada por Donnie Yen y estará dirigida por Wilson Yip.",
"release_date": "2019-10-18"
},
{
"original_title": "Fast & Furious Presents: Hobbs & Shaw",
"title": "Fast & Furious: Hobbs & Shaw",
"vote_average": 6.5,
"overview": "Desde que Hobbs, agente del Servicio de Seguridad Diplomática de Estados Unidos, y el británico Shaw, proscrito sin ley, se enfrentaron por primera vez, solo han intercambiado bofetadas y malas palabras. Pero cuando las despiadadas acciones de Brixton, un anarquista cibergenéticamente mejorado, amenazan el futuro de la humanidad, ambos se unen para derrotarlo.",
"release_date": "2019-08-01"
},
{
"original_title": "Spider-Man: Far from Home",
"title": "Spider-Man: Lejos de Casa",
"vote_average": 7.6,
"overview": "Peter Parker decide irse junto a Michelle Jones, Ned y el resto de sus amigos a pasar unas vacaciones a Europa después de los eventos ocurridos en Vengadores: EndGame. Sin embargo, el plan de Parker por dejar de lado sus superpoderes durante unas semanas se ven truncados cuándo es reclutado por Nick Fury para unirse a Mysterio (un humano que proviene de la Tierra 833, una dimensión del Multiverso, que tuvo su primera aparición en Doctor Strange) para luchar contra los Elementales (cuatro entes inmortales que vienen de la misma dimensión y que dominan los cuatro elementos de la Naturaleza, el fuego, el agua, el aire y la tierra) . En ese momento, Parker vuelve a ponerse el traje de Spider-Man para cumplir con su labor.",
"release_date": "2019-07-05"
},
{
"original_title": "Cars",
"title": "Cars",
"vote_average": 6.7,
"overview": "El aspirante a campeón de carreras Rayo McQueen está sobre la vía rápida al éxito, la fama y todo lo que él había soñado, hasta que por error toma un desvío inesperado en la polvorienta y solitaria Ruta 66. Su actitud arrogante se desvanece cuando llega a una pequeña comunidad olvidada que le enseña las cosas importantes de la vida que había olvidado.",
"release_date": "2006-07-06"
},
{
"original_title": "Zombieland: Double Tap",
"title": "Zombieland: Mata y remata",
"vote_average": 7.5,
"overview": "En esta secuela y empleando el característico sentido del humor del que hizo gala \"Zombieland\", el grupo de protagonistas tendrá que viajar desde la Casa Blanca hasta el corazón de los Estados Unidos, sobreviviendo a nuevas clases de muertos vivientes que han evolucionado desde lo sucedido hace algunos años, así como a algunos supervivientes humanos rezagados. Pero, por encima de todo, tendrán que tratar de soportar los inconvenientes de convivir entre ellos.",
"release_date": "2019-10-18"
},
{
"original_title": "The Angry Birds Movie 2",
"title": "Angry Birds 2: La película",
"vote_average": 6.5,
"overview": "Vuelven a la carga Red, el pájaro de color rojo con problemas de mal genio, y sus amigos Chuck, el pájaro amarillo hiperactivo, y Bomb, el pájaro negro muy volátil. En esta segunda parte, los pájaros protagonistas y los intrigantes cerdos de color verde llevarán su conflicto a un nuevo nivel. Y es que, aparecerá una nueva y malvada villana: Zeta, un pájaro que vive en una isla helada. Cuando Zeta lance una bola de hielo sobre la isla en la que se encuentran Red y compañía, nuestros protagonistas tendrán que hacer frente a esta nueva amenaza.",
"release_date": "2019-08-23"
},
{
"original_title": "Toy Story 4",
"title": "Toy Story 4",
"vote_average": 7.6,
"overview": "Woody siempre ha tenido claro cuál es su labor en el mundo y cuál es su prioridad: cuidar a su dueño, ya sea Andy o Bonnie. Sin embargo, Woody descubrirá lo grande que puede ser el mundo para un juguete cuando Forky se convierta en su nuevo compañero de habitación. Los juguetes se embarcarán en una aventura de la que no se olvidarán jamás.",
"release_date": "2019-06-21"
},
{
"original_title": "El Camino: A Breaking Bad Movie",
"title": "El Camino: Una película de Breaking Bad",
"vote_average": 7.1,
"overview": "Tiempo después de los eventos sucedidos tras el último episodio de la serie \"Breaking Bad\", el fugitivo Jesse Pinkman huye de sus perseguidores, de la ley y de su pasado.",
"release_date": "2019-10-11"
},
{
"original_title": "Scary Stories to Tell in the Dark",
"title": "Historias de miedo para contar en la oscuridad",
"vote_average": 6.3,
"overview": "Mill Valley, Pennsylvania, noche de Halloween, 1968. Después de gastar una broma a un matón de la escuela, Sarah y sus amigos deciden colarse en una casa supuestamente embrujada que una vez perteneció a la poderosa familia Bellows, desatando fuerzas oscuras que no podrán controlar.",
"release_date": "2019-08-09"
},
{
"original_title": "Aladdin",
"title": "Aladdín",
"vote_average": 7.1,
"overview": "Aladdin es un adorable pero desafortunado ladronzuelo enamorado de la hija del Sultán, la princesa Jasmine. Para intentar conquistarla, acepta el desafío de Jafar, que consiste en entrar a una cueva en mitad del desierto para dar con una lámpara mágica que le concederá todos sus deseos. Allí es donde Aladdín conocerá al Genio, dando inicio a una aventura como nunca antes había imaginado.",
"release_date": "2019-05-24"
},
{
"original_title": "ワンピーススタンピード",
"title": "One Piece: Stampede",
"vote_average": 7.6,
"overview": "La película tiene lugar durante la Pirates Expo, \"hecha por piratas para piratas\", donde los piratas de todo el mundo, incluidos algunos de sus personajes más infames, se unen a la búsqueda de un gran tesoro para encontrar un tesoro perdido, esta vez el tesoro. Perteneció nada menos que a Gold Roger!",
"release_date": "2019-11-15"
},
{
"original_title": "It Chapter Two",
"title": "It Capítulo 2",
"vote_average": 6.9,
"overview": "27 años después, los ex-miembros del Club de los Perdedores, que crecieron y se mudaron lejos de Derry, vuelven a unirse tras una devastadora llamada telefónica.",
"release_date": "2019-09-06"
},
{
"original_title": "Rattlesnake",
"title": "Serpiente de cascabel",
"vote_average": 5.6,
"overview": "Una misteriosa desconocida ha salvado a su hija de una mordedura letal de serpiente. Ahora, tiene que devolverle el favor matando a un desconocido.",
"release_date": "2019-10-25"
},
{
"original_title": "Eli",
"title": "Eli",
"vote_average": 6,
"overview": "Eli Miller es un niño que padece una enfermedad autoinmune. Como último recurso, se traslada con sus padres a una mansión libre de gérmenes para recibir tratamiento. Durante su estancia, le atormentan visiones terroríficas que otros consideran alucinaciones. Definitivamente, algo siniestro se esconde entre estas paredes.",
"release_date": "2019-10-18"
},
{
"original_title": "John Wick",
"title": "John Wick",
"vote_average": 7.2,
"overview": "En Nueva York, John Wick, un asesino a sueldo retirado, vuelve otra vez a la acción para vengarse de los gángsters que le quitaron todo.",
"release_date": "2014-10-22"
},
{
"original_title": "Gemini Man",
"title": "Géminis",
"vote_average": 5.8,
"overview": "Un asesino a sueldo, demasiado mayor, decide retirarse. Pero esto no le va a resultar tan fácil, pues tendrá que enfrentarse a un clon suyo, mucho más joven.",
"release_date": "2019-10-11"
}
],
"total_movies": 20
}
const fs = require("fs");
let ListMovie = fs.readFileSync("C:/Users/soraw/DigitalHouse/dh-movies/movies.json", 'utf8');
let ListMovieArray = JSON.parse(ListMovie);
var i = 0;
function ayuda() {
for (i = 0; i < ListMovieArray.total_movies; i++) {
console.log(ListMovieArray.movies[i].title)
}
}
console.log(ayuda())
Just to clarify your confusion, here is the updated function:-
function ayuda() {
const titleArray = [];
for (let i = 0; i < ListMovieArray.total_movies; i++) {
titleArray.push(ListMovieArray.movies[i].title);
}
return titleArray;
}
console.log(ayuda())
You will see the result just fine.
if you see your function is void type function
function ayuda() {
for (i = 0; i < ListMovieArray.total_movies; i++) {
console.log(ListMovieArray.movies[i].title)
}
}
which void function return undefined then when you try to console log undefined then it log two undefined
first undefined is longed by by your function ayuda,
second undefined is longed by return type of console.log which is
also void type function so it is undefined
your function call actually looks like
console.log(undefined)
to fix this you should return some list from fome valid value
below code is returning array[] of movies title which later can be used by caller
function ayuda(ListMovieArray) {
const titleArray = [];
for (let i = 0; i < ListMovieArray.total_movies; i++) {
titleArray.push(ListMovieArray.movies[i].title);
}
return titleArray;
}
OR
below cod is longing list item on console and returning true when
complete
function ayuda(ListMovieArray) {
for (i = 0; i < ListMovieArray.total_movies; i++) {
console.log(ListMovieArray.movies[i].title)
}
return true// or '';
}
return type is totally depend you your use case
Your code seems to not handle any errors. You said you have lot of data, try using promises.
const fs = require("fs");
const ayuda = (fileName) => {
return new Promise((Resolve, Reject) => {
fs.readFile(fileName, 'utf8', (err, data) => {
if(err) { Reject(err); }
else {
Resolve(data.movies.filter(y => y.title))
}
})
})
}
ayuda(PATH_TO_FILE).then(x => console.log(x)).catch(err => console.log(err))
In last you are getting an error because you are not returning anything in your function.
Basically console.log() call your function, once your function called, the execution starts inside the function print the statement inside the for a loop. Once function execution complete it returns undefined and print undefined in outside of your console.
you can do like below:-
const fs = require("fs");
let ListMovie = fs.readFileSync("C:/Users/soraw/DigitalHouse/dh-movies/movies.json", 'utf8');
let ListMovieArray = JSON.parse(ListMovie);
var i = 0;
function ayuda() {
for (i = 0; i < ListMovieArray.total_movies; i++) {
console.log(ListMovieArray.movies[i].title)
}
// you can return anythig like 1 or ''
return 1;
}
console.log(ayuda())
// if you do not want to return anything you can also call the function directly, without using console like this
ayuda();
you can implement this function using es6 also, which is given below:-
const fs = require("fs");
let ListMovie = fs.readFileSync("C:/Users/soraw/DigitalHouse/dh-movies/movies.json", 'utf8');
let ListMovieArray = JSON.parse(ListMovie);
const ayuda = () => {
for (let i = 0; i < ListMovieArray.length; i++) {
console.log(ListMovieArray.movies[i].title);
}
return '';
}
console.log(ayuda());
I need to retrieved a index inside a JSON data.
My query -> I want to get the position of the URL who contains the text "eisf" inside all the URL's.
I tried the function findIndex, but not working...
[{
"title": "CAP Pâtissier à La Ciotat - GRETA Marseille Méditerranée - Académie ...",
"url": "https://www.gretanet.com/formation-cap-patissier+la-ciotat+1007.html",
"displayedUrl": "https://www.gretanet.com/formation-cap-patissier+la-ciotat+1007.html",
"description": "Formation CAP Pâtissier à La Ciotat - GRETA Marseille Méditerranée - Académie d'Aix-Marseille.",
"siteLinks": []
},
{
"title": "Les sujets du CAP pâtissier - EISF",
"url": "https://www.eisf.fr/sujets-examen-cap-patisserie/",
"displayedUrl": "https://www.eisf.fr/sujets-examen-cap-patisserie/",
"description": "8 déc. 2018 - Vous voulez vous entrainer à l'examen du CAP Pâtissier ? Retrouver les annales des années précédentes. Sujets CAP Pâtissier 2018.",
"siteLinks": []
}]
You can iterate the array using forEach and check if url have that text using indexOf. It if is greater that -1 then push it to the indexArr
let data = [{
"title": "CAP Pâtissier à La Ciotat - GRETA Marseille Méditerranée - Académie ...",
"url": "https://www.gretanet.com/formation-cap-patissier+la-ciotat+1007.html",
"displayedUrl": "https://www.gretanet.com/formation-cap-patissier+la-ciotat+1007.html",
"description": "Formation CAP Pâtissier à La Ciotat - GRETA Marseille Méditerranée - Académie d'Aix-Marseille.",
"siteLinks": []
},
{
"title": "Les sujets du CAP pâtissier - EISF",
"url": "https://www.eisf.fr/sujets-examen-cap-patisserie/",
"displayedUrl": "https://www.eisf.fr/sujets-examen-cap-patisserie/",
"description": "8 déc. 2018 - Vous voulez vous entrainer à l'examen du CAP Pâtissier ? Retrouver les annales des années précédentes. Sujets CAP Pâtissier 2018.",
"siteLinks": []
}
];
let indexArr = [];
data.forEach(function(item, index) {
if (item.url.indexOf('eisf') !== -1) {
indexArr.push(index);
}
});
console.log(indexArr)
I have this JSON file with info about a cinema.
"schedule": [
{
"day": "Maandag",
"date": "22/05/2017",
"movies": [
{
"title": "I Am Not Your Negro",
"description": "In deze Belgische coproductie vertrekt Raoul Peck van een onafgewerkte roman van de Afro-Amerikaanse schrijver James Baldwin voor een reis door de zwarte geschiedenis die de Burgerrechtenbeweging uit de jaren zestig verbindt met het huidige #BlackLivesMatter. De tekst, geschreven in 1979, is helaas nog altijd heel actueel en bespreekt een diep geworteld racisme. De film is een treffend betoog op basis van archiefbeelden, filmfragmenten en actuele nieuwsbeelden die aan elkaar gepraat worden door de bezwerende stem van Samuel L. Jackson.",
"img": "negro.jpg",
"room": 1,
"screenings": [
"20:25"
],
"kids":false
},
{
"title": "Lady MacBeth",
"description": "De jonge Katherine leeft Northumberland in 1865. Ze is er gevangene in eigen huis en wordt er door haar sadistische echtgenoot en diens autoritaire vader tot op het bot vernederd. Leven in zo’n liefdeloze wereld moet in deze krachtige kostuumfilm wel tot excessen leiden. Wanneer Katherine een allesverzengende relatie aanknoopt met een knecht gaat het mis. Een indrukwekkende speelfilmdebuut van theater- en operaregisseur William Oldroyd.",
"img": "macbeth.jpg",
"room": 2,
"screenings": [
"20:15"
],
"kids":false
},
{
"title": "Tarde para la Ira",
"description": "Na acht jaar in de gevangenis als gevolg van een misgelopen sieradenroof wil Curro maar één ding: een nieuw leven beginnen met zijn familie. Zijn komst leidt echter tot spanningen bij zijn broer en diens vriendin, die een rustig leventje leiden. Bovendien verandert de ontmoeting met Joseph, een mysterieuze vreemdeling, zijn plannen. Hij komt terecht in een onomkeerbare, donkere reis terug naar het verleden, vol wraak. Deze debuutfilm van acteur Raúl Arévalo won recent 4 Goyas (de Spaanse variant van de Oscar) waaronder die voor Beste Film.",
"room": 3,
"img": "tarde.jpg",
"screenings": [
"20:15"
],
"kids":false
}
]
},
{
"day": "Dinsdag",
"date": "23/05/2017",
"movies": [
{
"title": "Django",
"description": "De virtuoze gitarist Django Reinhardt, geboren in een Henegouws dorp, was een Roma. Op het moment dat hij in Parijs concertzalen laat vollopen, vallen de Duitsers Frankrijk binnen. De film focust op de oorlogsjaren van de virtuoze gitarist en zoomt in op zijn poging om naar Zwitserland te vluchten. De aandacht ligt op het droevige lot van de Roma-zigeuners, een bevolkingsgroep die door de nazi’s vervolgd werden, tijdens die oorlogsjaren. De aanstekelijke muziek wordt vertolkt door het Rosenberg Trio.",
"room": 1,
"img": "django.jpg",
"screenings": [
"20:15"
],
"kids":false
},
{
"title": "March of the Penguins 2",
"description": "In March of The Penguins 2 keert regisseur Luc Jacquet terug met een even verbluffend vervolg, en voert de kijker met behulp van drones en onderwatercamera’s mee naar onherbergzame plekken op Antarctica. Ditmaal volgen we een jonge pinguïn die op het punt staat zijn eerste grote reis te maken, vol gevaar en obstakels. Het vervolgverhaal vertelt de lotsbestemming van één pinguïn, wiens krachtige en mysterieuze instincten hem in staat stellen om te overleven.",
"room": 3,
"img": "march.jpg",
"screenings": [
"20:15"
],
"kids":true
},
{
"title": "Their Finest",
"description": "In deze charmante komedie staan twee scenarioschrijvers centraal. Tijdens WOII krijgen ze de opdracht een fictiefilm te maken die het moreel van de Britten moet opschroeven. Tijdens het schrijversproces krijgen ze voortdurend nieuwe richtlijnen van het ministerie van Oorlog om het script aan te passen. Om uiteindelijk de Amerikanen ook over de streep te trekken om deel te nemen aan de oorlog moeten ze de hoofdrol herschrijven met een Amerikaanse held. Een puike verzameling Britse acteurs zijn de kers op de verrukkelijke taart.",
"room": 3,
"img": "finest.jpg",
"screenings": [
"20:15"
],
"kids":false
}
]
I want to make a list where I show the dates, so that you can click on it and see the movies on that day.
When I try to do that. It only shows the first date: 22/05/2017. And not the other one: 23/05/2017.
I'm using this code:
{
const createListItems = schedule => {
const $li = document.createElement(`li`);
$li.textContent = `${schedule.date}`;
document.querySelector(`.days`).appendChild($li);
$li.addEventListener(`click`, handleDayClick);
};
const makeListItems = schedule => {
schedule.forEach(date => {
createListItems(date);
});
};
const parse = schedule=> {
makeListItems(schedule);
};
const init = () => {
const jsonFile = `./assets/data/buda.json`;
fetch(jsonFile).then(r => r.json()).then(data => parse(data.schedule));
};
init();
}
Does someone know what I do wrong?
I removed this line of code : $li.addEventListener('click', handleDayClick);
I haven't declared the function handleDayClick yet, so that was the problem.
I want to make a website about a cinema. On one page I want to show a schedule. I want to make a list where you can see the dates and if you click on it, you see the movies that play on that day.
This is my json file with the data:
{
"complex": "Budascoop",
"location": {
"City": "Kortrijk",
"Street": "Dam"
},
"schedule": [
{
"day": "Maandag",
"date": "22/05/2017",
"movies": [
{
"title": "I Am Not Your Negro",
"description": "In deze Belgische coproductie vertrekt Raoul Peck van een onafgewerkte roman van de Afro-Amerikaanse schrijver James Baldwin voor een reis door de zwarte geschiedenis die de Burgerrechtenbeweging uit de jaren zestig verbindt met het huidige #BlackLivesMatter. De tekst, geschreven in 1979, is helaas nog altijd heel actueel en bespreekt een diep geworteld racisme. De film is een treffend betoog op basis van archiefbeelden, filmfragmenten en actuele nieuwsbeelden die aan elkaar gepraat worden door de bezwerende stem van Samuel L. Jackson.",
"img": "negro.jpg",
"room": 1,
"screenings": [
"20:25"
],
"kids":false
},
{
"title": "Lady MacBeth",
"description": "De jonge Katherine leeft Northumberland in 1865. Ze is er gevangene in eigen huis en wordt er door haar sadistische echtgenoot en diens autoritaire vader tot op het bot vernederd. Leven in zo’n liefdeloze wereld moet in deze krachtige kostuumfilm wel tot excessen leiden. Wanneer Katherine een allesverzengende relatie aanknoopt met een knecht gaat het mis. Een indrukwekkende speelfilmdebuut van theater- en operaregisseur William Oldroyd.",
"img": "macbeth.jpg",
"room": 2,
"screenings": [
"20:15"
],
"kids":false
},
{
"title": "Tarde para la Ira",
"description": "Na acht jaar in de gevangenis als gevolg van een misgelopen sieradenroof wil Curro maar één ding: een nieuw leven beginnen met zijn familie. Zijn komst leidt echter tot spanningen bij zijn broer en diens vriendin, die een rustig leventje leiden. Bovendien verandert de ontmoeting met Joseph, een mysterieuze vreemdeling, zijn plannen. Hij komt terecht in een onomkeerbare, donkere reis terug naar het verleden, vol wraak. Deze debuutfilm van acteur Raúl Arévalo won recent 4 Goyas (de Spaanse variant van de Oscar) waaronder die voor Beste Film.",
"room": 3,
"img": "tarde.jpg",
"screenings": [
"20:15"
],
"kids":false
}
]
},
{
"day": "Dinsdag",
"date": "23/05/2017",
"movies": [
{
"title": "Django",
"description": "De virtuoze gitarist Django Reinhardt, geboren in een Henegouws dorp, was een Roma. Op het moment dat hij in Parijs concertzalen laat vollopen, vallen de Duitsers Frankrijk binnen. De film focust op de oorlogsjaren van de virtuoze gitarist en zoomt in op zijn poging om naar Zwitserland te vluchten. De aandacht ligt op het droevige lot van de Roma-zigeuners, een bevolkingsgroep die door de nazi’s vervolgd werden, tijdens die oorlogsjaren. De aanstekelijke muziek wordt vertolkt door het Rosenberg Trio.",
"room": 1,
"img": "django.jpg",
"screenings": [
"20:15"
],
"kids":false
},
{
"title": "March of the Penguins 2",
"description": "In March of The Penguins 2 keert regisseur Luc Jacquet terug met een even verbluffend vervolg, en voert de kijker met behulp van drones en onderwatercamera’s mee naar onherbergzame plekken op Antarctica. Ditmaal volgen we een jonge pinguïn die op het punt staat zijn eerste grote reis te maken, vol gevaar en obstakels. Het vervolgverhaal vertelt de lotsbestemming van één pinguïn, wiens krachtige en mysterieuze instincten hem in staat stellen om te overleven.",
"room": 3,
"img": "march.jpg",
"screenings": [
"20:15"
],
"kids":true
},
{
"title": "Their Finest",
"description": "In deze charmante komedie staan twee scenarioschrijvers centraal. Tijdens WOII krijgen ze de opdracht een fictiefilm te maken die het moreel van de Britten moet opschroeven. Tijdens het schrijversproces krijgen ze voortdurend nieuwe richtlijnen van het ministerie van Oorlog om het script aan te passen. Om uiteindelijk de Amerikanen ook over de streep te trekken om deel te nemen aan de oorlog moeten ze de hoofdrol herschrijven met een Amerikaanse held. Een puike verzameling Britse acteurs zijn de kers op de verrukkelijke taart.",
"room": 3,
"img": "finest.jpg",
"screenings": [
"20:15"
],
"kids":false
}
]
},
{
"day": "Woensdag",
"date": "24/05/2017",
"movies": [
{
"title": "Dries",
"description": "DRIES brengt een intiem en fascinerend portret van de Vlaamse modeontwerper Dries Van Noten wiens stijl wordt gekenmerkt door warme kleuren, exquise prints en rijke borduursels. Als één van de laatste onafhankelijke modeontwerpers bekleedt hij een unieke positie in het modelandschap. Hij staat al 25 jaar aan de top en heel wat van zijn collecties zijn iconisch te noemen. Van Noten zelf is bekend om zijn soberheid en zijn bescheidenheid, je zal hem niet vaak zien op modefeestjes en hij geeft amper interviews. Voor het eerst laat hij een camera toe in zijn professionele en persoonlijke leven; regisseur Reiner Holzemer volgde Dries Van Noten een jaar lang langsheen de creatie van 4 collecties.",
"room": 1,
"img": "dries.jpg",
"screenings": [
"18:00"
],
"kids":false
},
{
"title": "The Sense of an Ending",
"description": "Tony Webster, een gescheiden en pensioneerde man, leidt een teruggetrokken leven. Wanneer zijn verleden hem plotseling lijkt in te halen, is de rust voorbij. Hij wordt gedwongen de confrontatie aan te gaan met de waarheid over zijn eerste liefde en moet de ondraaglijke gevolgen van zijn beslissingen destijds onder ogen zien. Een verfilming naar het boek van Julian Barnes. Ritesh Batra (The Lunchbox) fileert met humor, wijsheid en een feilloos gevoel hoe een onbedachtzame of verkeerd ingeschatte handeling jouw pad voor altijd kan bepalen.",
"room": 2,
"img": "sense.jpg",
"screenings": [
"18:00",
"20:25"
],
"kids":false
},
{
"title": "After the Storm",
"description": "Ryota won ooit een prijs met zijn eerste roman maar verdient nu zijn brood als detective. Zijn gokverslaving heeft hem vervreemd van zijn ex-vrouw en zijn zoon. Na de dood van zijn vader lijken zijn bejaarde moeder en mooie ex-vrouw door te gaan met hun leven. Wanneer ze op een avond allemaal in het flatje van de oude moeder zitten, barst een tyfoon los. Ryota, zijn ex en zijn zoon kunnen niet anders dan daar te blijven om te schuilen. Een zachtmoedig, melancholisch en - verrassend genoeg - ook grappig relaas van een gescheiden man die opnieuw toenadering zoekt tot zijn vervreemde familie. Koreeda (Like Father, Like Son, Nobody Knows, …) kan als geen ander Japanse familierelaties ontrafelen.",
"room": 3,
"img": "storm.jpg",
"screenings": [
"18:00"
],
"kids":false
},
{
"title": "Tarde para la Ira",
"description": "Na acht jaar in de gevangenis als gevolg van een misgelopen sieradenroof wil Curro maar één ding: een nieuw leven beginnen met zijn familie. Zijn komst leidt echter tot spanningen bij zijn broer en diens vriendin, die een rustig leventje leiden. Bovendien verandert de ontmoeting met Joseph, een mysterieuze vreemdeling, zijn plannen. Hij komt terecht in een onomkeerbare, donkere reis terug naar het verleden, vol wraak. Deze debuutfilm van acteur Raúl Arévalo won recent 4 Goyas (de Spaanse variant van de Oscar) waaronder die voor Beste Film.",
"room": 1,
"img": "tarde.jpg",
"screenings": [
"20:15"
],
"kids":false
},
{
"title": "Their Finest",
"description": "In deze charmante komedie staan twee scenarioschrijvers centraal. Tijdens WOII krijgen ze de opdracht een fictiefilm te maken die het moreel van de Britten moet opschroeven. Tijdens het schrijversproces krijgen ze voortdurend nieuwe richtlijnen van het ministerie van Oorlog om het script aan te passen. Om uiteindelijk de Amerikanen ook over de streep te trekken om deel te nemen aan de oorlog moeten ze de hoofdrol herschrijven met een Amerikaanse held. Een puike verzameling Britse acteurs zijn de kers op de verrukkelijke taart.",
"room": 4,
"img": "finest.jpg",
"screenings": [
"20:15"
],
"kids":false
}
]
}
This is how I make the list with JS:
{
const createListItems = schedule => {
const $li = document.createElement(`li`);
$li.textContent = `${schedule.date}`;
document.querySelector(`.days`).appendChild($li);
$li.addEventListener(`click`, handleDayClick);
};
const makeListItems = schedule => {
schedule.forEach(date => {
createListItems(date);
});
};
const parse = schedule => {
makeListItems(schedule);
};
This is all works out fine, so I continue with the code that I use for if you click on a date:
const handleDayClick = ({currentTarget: $li}) => {
loadFilmData($li);
};
const loadFilmData = $li => {
setActiveElement($li);
fetch(`./assets/data/buda.json`).then(r => r.json()).then(data => parse(parseMovieDetail));
}
const setActiveElement = $li => {
const $old = document.querySelector(`.active`);
if ($old) {
$old.classList.remove(`active`);
}
$li.classList.add(`active`);
}
const parseMovieDetail = date => {
const $container = document.querySelector(`.movies`);
$container.innerHTML = ``;
date.movies.forEach(movie => {
$movieList = document.querySelector(`.movies`);
const $h3 = document.createElement(`h3`);
$h3.textContent = `${movies.title}`;
$movieList.appendChild($h3);
const $img = document.createElement(`img`);
$img.setAttribute(`src`, `assets/img/${movies.img}`);
$img.setAttribute(`width`, 200);
$img.setAttribute(`height`, auto);
$movieList.appendChild($img);
const $p = document.createElement(`p`);
$p.classList.add(`description`);
$p.textContent = `${movies.description}`;
$movieList.appendChild($p);
const $div = document.createElement(`div`);
$div.classList.add(`meta`);
$movieList.appendChild($div);
const $ul = document.createElement(`ul`);
$ul.classList.add(`screenings`);
$div.classList.add($ul)
const $li = document.createElement(`li`);
$li.textContent = `${movies.screenings}`;
$ul.classList.add($li);
const $p2 = document.createElement(`p`);
$p2.textContent = `Zaal ${movies.room}`;
$div.appendChild($p2);
})
};
The problem I have right now if that if I click on a date, it doens't show anything and it give me this error in the console:
Uncaught (in promise) TypeError: schedule.forEach is not a function
I am using Kimonolabs and I want to Embed in my html the result of this JSON structure using jquery and I am new in jquery and javascript, so I did everything given in this tutorial : Tutorial Kimonolabs
{
"name": "CCF blog",
"count": 104,
"frequency": "Weekly",
"version": 1,
"newdata": true,
"lastrunstatus": "success",
"thisversionstatus": "success",
"nextrun": "Tue May 12 2015 19:54:32 GMT+0000 (UTC)",
"thisversionrun": "Tue May 05 2015 19:54:32 GMT+0000 (UTC)",
"results": {
"collection2": [
{
"Date": {
"href": "http://ccf.ma/blog/?p=42",
"text": "April 6, 2015"
},
"Titre": {
"href": "http://ccf.ma/blog/?p=42",
"text": "Le chemin vers la Responsabilité Sociétale des entreprises"
},
"description": "Qu’est-ce que c’est une entreprise RSE ? Est-ce une démarche réservée aux grandes entreprises ? Quels sont les enjeux réels ? Quel est l’état d’esprit ?"
},
{
"Date": {
"href": "http://ccf.ma/blog/?p=30",
"text": "March 20, 2015"
},
"Titre": {
"href": "http://ccf.ma/blog/?p=30",
"text": "Formation continue … quel choix pour quel besoin professionnel ?"
},
"description": "Chacun d’entre nous suit, au cours de sa jeunesse une formation initiale jusqu’au statut universitaire pour s’engager dans le vie active, pourtant, il ne nous tarde de nous poser des questions sur les nouveaux besoins en formation selon nos enjeux professionnelles et notre motivation, soit pour nous convertir, booster notre carrière ou simplement renforcer nos connaissances et compétences."
},
{
"Date": {
"href": "http://ccf.ma/blog/?p=9",
"text": "March 19, 2015"
},
"Titre": {
"href": "http://ccf.ma/blog/?p=9",
"text": "La TPE/ PME marocaine et le mangement par les processus"
},
"description": "Toute entreprise qu’elle soit cliente ou fournisseur a eu recours aux processus. Le management par le processus peut être un choix interne ou dicté par l’environnement externe, cas des clients qui exigent de leurs fournisseurs la mise en place de procédures spécifiques et la tenue d’un registre dédié, justifiant leurs applications."
},
{
"Date": {
"href": "http://ccf.ma/blog/?p=1",
"text": "March 19, 2015"
},
"Titre": {
"href": "http://ccf.ma/blog/?p=1",
"text": "Coacher avec éthique … n’est-ce pas un vrai axe de différentiation ?"
},
"description": "Dès le début des années 2000, la relation de coaching n’apparait plus comme un effet de mode mais comme une pratique en progression, une pratique de plus en plus perçue comme un levier de développement, plutôt qu’une simple aide en cas de difficulté ;"
}
],
I use this jquery Script with a proper html/css structure (foundation) "titre-article". It is my html class and I want to update:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$.ajax({
url:"https://www.kimonolabs.com/api//////?apikey=////////////",
crossDomain: true,
dataType: "jsonp",
success: function (response) {
//Do something with the response
var collection = response.results.collection2;
$(".titre-article").html(collection.Titre.text);
},
error: function (xhr, status) {
//handle errors
}
});
</script>
But nothing seems to work.
The problem is that response.results.collection2 is an array but you are using as a object, you need to an index to access the values in the array
change $(".titre-article").html(collection.Titre.text); to $(".titre-article").html(collection[0].Titre.text);
This will give you the first element in the array
Here is how you can get results
var collection = response.results.collection2[0];
$(".titre-article").html(collection.Titre.text);