我有这样的json响应。
if (userAgent != null && userAgent.Contains("facebookexternalhit/") || userAgent.Contains("facebot") || userAgent.Contains("facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"))
{
return View(actionlinks);
}
在service.ts中,我正在执行这样的请求以获取响应数据。
{
"response": {
"data": {
"name": "ABC",
"Id": "1234",
"address": "adthhyrr"
}
}
}
在获得响应后的上述方法中,我创建了对象库并将jsonresponse存储到登录表中。
现在我想首先获取所有登录响应数据然后我想在html页面中显示所有内容。所以我正在做这样的数据。
login_data: Object;
db :any;
constructor(){
this.db = new AngularIndexedDB('TEST', 1);
}
public getResponseData() : Promise<any> {
if(typeof(this.login_data) === "undefined") {
return this.http.get('assets/response.json')
.toPromise().then(res => {
this.login_data = res.json().response.data;
this.db.createStore(1, (evt) => {
let objectStore = evt.currentTarget.result.createObjectStore('login', { keyPath: "id", autoIncrement: true });
objectStore.createIndex("keyname", "valuename", { unique: true });
console.log("db created login")
}).then(() => {
this.db.add('login', { keyname: 'loginresponse', valuename: JSON.stringify(this.login_data) }).then(() => {
console.log('login fields added');
}, (error) => {
console.log('error is...'+error);
});
});
return this.login_data;
}).catch(this.handleError);
} else {
return Promise.resolve(this.login_data);
}
}
如果我不在返回语句中使用 JSON.parse,那么我收到错误 在查询之前,您需要使用createStore函数创建数据库! 我在一个组件中调用这个getAllData方法。像这样
getAllData() {
var data = this.db.getAll('login').then((login) => {
console.log("login from index"+login);
}, (error) => {
console.log('login'+error);
});
return JSON.parse(data);
}
但是我收到语法错误位置1的JSON中的意外令牌o 。 任何人都可以帮我如何从indexedDB获取数据。