static void Main(string[] args) { ArrayList descriçoes = LerLocais(@"../../Descriçao.json"); for (int i = 0; i < descriçoes.Count; i++) { // Para cada local que se encontra no ArrayList descriçoes, vai dessarializar um ficheiro de previsao json para a classe PrevisaoIPMA, para // que seja armazanada a descriçao de cada local, graças ao ArrayList descriçoes PrevisaoIPMA previsaoIPMA = LerFicheiroPrevisao(((Descricao)descriçoes[i]).globalIdLocal); previsaoIPMA.local = ((Descricao)descriçoes[i]).Local; previsaoIPMA.idRegiao = ((Descricao)descriçoes[i]).idRegiao; previsaoIPMA.idDistrito = ((Descricao)descriçoes[i]).idDistrito; previsaoIPMA.idConcelho = ((Descricao)descriçoes[i]).idConcelho; previsaoIPMA.idAreaAviso = ((Descricao)descriçoes[i]).idAreaAviso; previsaoIPMA.latitude = ((Descricao)descriçoes[i]).latitude; previsaoIPMA.longitude = ((Descricao)descriçoes[i]).longitude; // Caso for encontrado o globalIdLocal, vai ser serializado pela classe PrevisaoIPMA para um ficheiro json e xml if (previsaoIPMA.globalIdLocal.Equals(previsaoIPMA.globalIdLocal)) { string aux = Newtonsoft.Json.JsonConvert.SerializeObject(previsaoIPMA, Newtonsoft.Json.Formatting.Indented); File.WriteAllText(@"../../Previsões Detalhe/" + previsaoIPMA.globalIdLocal + "-detalhe.json", aux); XmlSerializer x = new XmlSerializer(previsaoIPMA.GetType()); //para ficheiro TextWriter writer = new StreamWriter(@"../../Previsões Detalhe/" + previsaoIPMA.globalIdLocal + "-detalhe.xml"); x.Serialize(writer, previsaoIPMA); } } }
// <summary> /// Para cada globalIdLocal do ArrayList diclocais vai ao respetivo ficheiro json com o objetivo desserializar para a classe PrevisaoIPMA /// </summary> static PrevisaoIPMA LerFicheiroPrevisao(int globalIdLocal) { String jsonString = null; using (StreamReader reader = new StreamReader(@"../../Previsões/" + globalIdLocal + ".json")) { jsonString = reader.ReadToEnd(); } PrevisaoIPMA obj = System.Text.Json.JsonSerializer.Deserialize <PrevisaoIPMA>(jsonString); return(obj); }