Reagieren Sie auf den nativen SQLite-Speicher und konvertieren Sie den in der Datenbank gespeicherten JSON-Wert zurück i
Posted: 13 Jan 2025, 11:17
Ich speichere ein JavaScript-Objekt als JSON in meiner SQLite-Datenbank
Wenn ich später alle gespeicherten Daten abrufe, wird ein Array von JSON-Objekten zurückgegeben, aber jedes Mal, wenn ich versuche, JSON.parse für das Array zu verwenden, erhalte ich eine Warnung
SyntaxError: JSON-Analysefehler: Unerwartetes Zeichen: o
Meine SQLite-Tabellenspalte ist vom Typ TEXT
Ich muss jedes Element in den Ergebnissen konvertieren, wenn ich eine SQLite-Select-Abfrage zurück in ein JavaScript-Objekt durchführe.
Derzeit sehen die Ergebnisse meiner Select-Abfrage so aus
Ich habe versucht, das Array zu durchlaufen und dann jedes einzelne mit JSON.stringify() und anschließend JSON.parse() zu konvertieren, aber es hat immer noch das gleiche Format
Code: Select all
const someData = {
details: {id: 1, name: 'Hi', userId: 2, email: 'aaa@aaa.com'}
}
const data = JSON.stringify(someData)
const insertQuery = `INSERT OR REPLACE INTO ${tableName} (answer) VALUES (${data});`
db.executeSql(insertQuery)
SyntaxError: JSON-Analysefehler: Unerwartetes Zeichen: o
Meine SQLite-Tabellenspalte ist vom Typ TEXT
Ich muss jedes Element in den Ergebnissen konvertieren, wenn ich eine SQLite-Select-Abfrage zurück in ein JavaScript-Objekt durchführe.
Derzeit sehen die Ergebnisse meiner Select-Abfrage so aus
Code: Select all
[
{"details": "{\"id\": 0,\"name\": \"SOME NAME\",\"userId\":2,\"email\": \"someEmail\"},
{\"details\": "{\"id\": 1,\"name\": \"SOME NAME 1\",\"userId\":2,\"email\": \"someEmail\"},
{\"details\": "{\"id\": 2,\"name\": \"SOME NAME 2\",\"userId\":2,\"email\": \"someEmail\"},
]
Code: Select all
const a = []
results.forEach((r) => {
const s = JSON.stringify(r)
const p = JSON.parse(s)
a.push(p)
console.log(a) // Shows it still same as JSON array above
})