If you need to keep your client-side and server-side DBs in sync, PouchDB is a good choice - you can use pouchdb-phonegap-cordova to implement it in the app. You'd also need implement a CouchDB REST interface on the server-side.
Or since your data is already formatted as JSON, you may want to try cordova-sqlite-porter as a convenient way to store the data - it will interface with either the WebView's WebSQL DB or native SQLite in conjunction with Cordova-sqlite-storage plugin.
You can pass your data as a JSON structure to importJsonToDb() which makes optimisations to perform the operation as fast as possible. This is good if you have a large amount of data to insert. Example usage:
var db = window.openDatabase("Test", "1.0", "TestDB", 1 * 1024);
var json = {
"structure":{
"tables":{
"Artist":"([Id] PRIMARY KEY, [Title])"
},
"otherSQL": [
"CREATE UNIQUE INDEX Artist_ID ON Artist(Id)"
]
},
"data":{
"inserts":{
"Artist":[
{"Id":"1","Title":"Fred"},
{"Id":"2","Title":"Bob"},
{"Id":"3","Title":"Jack"},
{"Id":"4","Title":"John"}
]
}
}
};
var successFn = function(count){
alert("Successfully imported JSON to DB; equivalent to "+count+" SQL statements");
};
var errorFn = function(error){
alert("The following error occurred: "+error.message);
};
var progressFn = function(current, total){
console.log("Imported "+current+"/"+total+" statements";
};
cordova.plugins.sqlitePorter.importJsonToDb(db, json, {
successFn: successFn,
errorFn: errorFn,
progressFn: progressFn,
batchInsertSize: 500
});