Ho un oggetto JSON codificato che memorizza una serie di oggetti che desidero scorrere per poterli inserire in un database. L'oggetto risultato è simile a quanto segue:Accesso agli oggetti all'interno della matrice all'interno dell'oggetto JSON utilizzando Javascript
{
"customers": [
{
"customer": {
"id":"1",
"customerName":"Customer Alpha",
"customerID":" custA",
"customerAddress":" Alpha Way",
"customerCity":" Alpha",
"customerState":" AL",
"customerZip":"91605"
}
},
{
"customer": {
"id":"2",
"customerName":"Customer Beta",
"customerID":" CustB",
"customerAddress":" Beta Street",
"customerCity":" Beta",
"customerState":" BE",
"customerZip":"91605"
}
}
]
}
mi piacerebbe essere in grado di inserire ogni campo nel database, ma il codice che ho ingressi undefined nel database per tutto. Qual è il modo corretto per accedere alle variabili memorizzate in ogni campo all'interno della matrice?
Ecco quello che sto utilizzando finora che non funziona:
function insertCustomer(customerName, customerID, customerAddress, customerCity, customerState, customerZip) {
db.transaction(function (tx) {
tx.executeSql('INSERT INTO Customers (customerName, customerID, customerAddress, customerCity, customerState, customerZip) VALUES (?, ?, ?, ?, ?, ?)', [customerName, customerID, customerAddress, customerCity, customerState, customerZip], CountReturns);
});
};
$.ajax({
url : 'http://webserver/retrieveDatabase.php',
dataType : 'json',
type : 'get',
success : function(Result){
alert(Result.customers);
for (var i = 0, len = Result.customers.length; i < len; ++i) {
var customer = Result.customers[i];
insertCustomer(customer.customerName, customer.customerID, customer.customerAddress, customer.customerCity, customer.customerState, customer.customerZip);
}
}
});
L'avviso risponde con una serie di [object Object] s.
Usa 'console.log' invece di avviso (e controllare la console browser Il risultato). 'Result.customers' è una matrice di oggetti, ecco perché l'avviso mostra ciò che stai vedendo. – bfavaretto
Dai dati di esempio sopra, sembra che il nome del cliente, ad esempio, sarebbe stato accessibile utilizzando: 'Result.customers [i] .customer.customerName'. Il tuo codice utilizza solo 'Result.customers [i] .customerName'. Il nome della variabile temporanea 'cliente' nasconde questa sottigliezza. –
@JimCote, la tua risposta non è una "risposta", quindi non riesco a urlare, ma dopo tre giorni di colpire il mio cranio, il tuo commento mi ha salvato! – BillyNair