I have a json file whose structure looks like this:
{"x":[
{
"Ids":"2",
"Titolo":"2-bando internazionalizzazione Marche - primo semestre 2024",
"Data_apertura":"16/07/2024",
"Data_chiusura_check":"---",
"Data_chiusura":"22/07/2024",
"Tipo_agevolazione":"contributo, fondo perduto, cofinanziamento",
"Settori":"agroalimentare, ambiente, energia, IT & nuove tecnologie",
"Ammontare_beneficio":"fino a 10.000 euro",
"Ambito_territoriale":"Marche",
"Attività":"partecipazione a fiere",
"Obiettivo_Beneficio":"internazionalizzazione, fiere",
"Percentuale_copertura":"60%",
"Spese_ammesse":"generali",
"Beneficiari":"PMI, startup",
"Altri_beneficiari":"microimpresa",
"Altri_settori":"---",
"Altre_info":"---",
"Stanziamento_bando":"800.000 euro",
},
{
"Ids":"4",
"Titolo":"4-bando certificazioni 2024 - cciaa Toscana nord ovest",
"Data_apertura":"03/06/2024",
"Data_chiusura_check":"---",
"Data_chiusura":"30/06/2024",
"Tipo_agevolazione":"contributo, fondo perduto, cofinnaziamento",
"Settori":"agroalimentare, ambiente, energia, IT & nuove tecnologie",
"Ammontare_beneficio":"fino a 5.000 euro",
"Ambito_territoriale":"Toscana",
"Attività":"adozione di sistemi di gestione certificati o l’acquisizione di certificazioni di prodotto o professionali",
"Obiettivo_Beneficio":"sostegno agli investimenti, certificazioni",
"Percentuale_copertura":"60%",
"Spese_ammesse":"servizi professionali",
"Beneficiari":"PMI, startup",
"Altri_beneficiari":"grande impresa, microimpresa",
"Altri_settori":"agricoltura, silvicoltura e pesca, alberghiero, altri servizi, artigianato, autoveicoli, mezzi di trasporto, chimica, farmaceutica, commercio, cultura, edilizia, elettronica, fornitura energia, acqua e gestione rifiuti, ICT, meccanica, metallurgia, mobili, legno, carta, moda, tessile, ristorazione, salute, servizi di trasporto, turismo",
"Altre_info":"---",
"Stanziamento_bando":"300.000 euro",
},
{
"Ids":"5",
"Titolo":"5-bando efficienza energetica 2024 - cciaa trento",
"Data_apertura":"03/06/2024",
"Data_chiusura_check":"---",
"Data_chiusura":"07/06/2024",
"Tipo_agevolazione":"contributo, fondo perduto, cofinanziamento",
"Settori":"agroalimentare, ambiente, energia, IT & nuove tecnologie",
"Ammontare_beneficio":"a partire da 2.000 euro fino a 10.000 euro",
"Ambito_territoriale":"Trentino-Alto Adige, Südtirol",
"Attività":" - attivare verifiche energetiche e/o di fattibilità per il risparmio energetico; - individuare soluzioni sull’efficientamento energetico degli edifici produttivi; - promuovere processi di razionalizzazione energetica dei cicli produttivi; - introdurre processi innovativi, sistemi di building automation volti al risparmio di energia, costituire delle CER.",
"Obiettivo_Beneficio":"transizione ecologica, digitalizzazione, innovazione, R&S",
"Percentuale_copertura":"70%",
"Spese_ammesse":"personale, impianti, macchinari, attrezzature",
"Beneficiari":"PMI, startup",
"Altri_beneficiari":"microimpresa",
"Altri_settori":"agricoltura, silvicoltura e pesca, alberghiero, altri servizi, artigianato, autoveicoli, mezzi di trasporto, chimica, farmaceutica, commercio, cultura, ICT, meccanica, metallurgia, mobili, legno, carta, moda, tessile, ristorazione, salute, servizi di trasporto, turismo",
"Altre_info":"efficientamento energetico edifici produttivi, razionalizzazione energetica cicli produttivi, risparmio energetico, building automation, costruzioni CER",
"Stanziamento_bando":"300.000 euro",
},
[...]
]}
I used the following script to extract and select the data I need:
const lista_data_ita = [];
fetch("/wp-content/themes/blocksy-child/uploads/maggio24_Ita.json")
.then((res) => res.text())
.then((text) => {
var data = JSON.parse(text);
console.log(data);
data_ita = Object.values(data.fondi_ita);
console.log(data_ita); //point 1
for (var value in data_ita) {
const x = data_ita[value];
console.log(x);
lista_data_ita.push(x); //point 2
}
});
console.log(lista_data_ita); //point 3
When I get to point 3 in // comment the console does not return the same array as in poin 1 in // comment
Array(101) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]
, but an array that is not iterable and therefore not usable for my purpose:
Array []
0: Object {...}
1: Object {...}
2: Object {...}
3: Object {...}
[...]
If I did not have this hiccup the next step would be:
function risultati(lista_data_it, rbeneficiario) {
const results_ben = [];
rbeneficiario.forEach(function (entry) {
let res = Object.values(datait).filter(x => x.Beneficiari.toLowerCase().includes(entry.toLowerCase()));
if (!results_ben.includes(res)) {
results_ben.push(res);
}
});
return results_ben;
}
Given that I have already tried other methods that allow me to use more elastic methods than fetch(), such as await, but which gave me problems in loading data:
Why are the two arrays different?
Is there any way to get an array of data like the ones in point 1 from fetch()?
Ultimately, how can I create a function that allows me to manipulate data in the json file based on a variable triggered by user input?
moreno erweba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.