get/read JSON 来自 IndexedDB 的文件来自 Angular

get/read JSON File from IndexedDB via Angular

我想要 read/write 一个 JSON- 文件,该文件是从我的 IndexedDB 中的框架 (GoDot 3.1) 保存的。

我使用 Angular 和 Ngx-Indexed-DB 来获取这样的文件:

import { Component, OnInit  } from '@angular/core';
import { NgxIndexedDB } from 'ngx-indexed-db';

@Component({
  selector: 'app-database',
  templateUrl: './database.component.html',
  styles: ['./database.component.scss']
})

export class DatabaseComponent  implements OnInit{


    constructor() { }

    ngOnInit() {

          let db = new NgxIndexedDB('/userfs');
          db.openDatabase(21, evt => {
            /* Do something */

          }).then(function(){
            db.getAll('FILE_DATA', 1).then(
                FILE_DATA => {
                    console.log(FILE_DATA);
                },
                error => {
                    console.log(error);
                });
              });
      }
}

但结果不是 json 文件:

我想从 IndexedDB 中读取和解析 json,如果我能在 IndexedDB 中再次保存修改后的 JSON-File 就好了。有人可以帮助解决这个问题吗?

解决方案:

import { Component, OnInit  } from '@angular/core';
import { NgxIndexedDB } from 'ngx-indexed-db';

@Component({
  selector: 'app-database',
  templateUrl: './database.component.html',
  styles: ['./database.component.scss']
})

export class DatabaseComponent  implements OnInit{


    constructor() { }

    ngOnInit() {
          let db = new NgxIndexedDB('/userfs');
          db.openDatabase(21, evt => {
            /* Do something */

          }).then(function(){
            db.getAll('FILE_DATA').then(
                FILE_DATA => {
                    let levelSpec = new TextDecoder().decode(FILE_DATA[1].contents)
                    console.log(levelSpec);
                },
                error => {
                    console.log(error);
                });
              });

      }
}

结果将是解析后的 json 文件: