Ciao, ho un problema riguardo all'inizializzazione di una variabile mediante la "scansione" di un file Json.

Attraverso JQuery elaboro i dati in JSon col seguente metodo, e qui non ci sono problemi.

codice:
$.getJSON('path/data.json', function(data) { 
		$.each(data.elements, function(i, m) {
		    if(condizione) {
			//azioni
		    }
		});
	    });
Ho però anche la necessità in un altro punto del codice di andare a prendere il valore di un determinato punto e per questo ho creato la seguente funzione (molto simile alla precedente)

codice:
function getVal(pid) {
	    var val;
	    $.getJSON('path/data.json', function(data) {
		$.each( data.elements, function(i, m) {
		    if(m.id == pid) {
			alert(m.id);
			val = m.title;
		    }
		});
	    });
	    alert(val);
	    return val;
	}
Il fatto però è che mi viene prima mostrato l'alert di "val" e poi quello di "m.id" e, per ovvi motivi, il primo restituisce "undefined". Esiste un metodo migliore per riuscire ad estrarre le info dall'elemento con l'ID ricercato?

Grazie!