Reagieren Sie auf den nativen SQLite-Speicher und konvertieren Sie den in der Datenbank gespeicherten JSON-Wert zurück iJavaScript

Javascript-Forum
Guest
 Reagieren Sie auf den nativen SQLite-Speicher und konvertieren Sie den in der Datenbank gespeicherten JSON-Wert zurück i

Post by Guest »

Ich speichere ein JavaScript-Objekt als JSON in meiner SQLite-Datenbank

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)
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

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\"},
]

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 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
})

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post