我正在處理一個需要將用戶數據保存爲JSON格式的程序。這是做得很好,我的數據保存爲JSON,但是當我嘗試使用JSON.parse
解析我存儲的JSON時,它不起作用。 這裏是我用於存儲數據代碼:JSON.parse不能在PhoneGap中工作
function writeUser(data) {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs){
fs.root.getFile('user.data', {create: true, exclusive: false}, function(fe){
fe.createWriter(function(writer){
//Its converts my data to JSON here
writer.write(JSON.stringify(data));
//It displays this so I knows its been written!
console.log('File written');
}, failwrite);
}, failwrite);
}, failwrite);
}
function failwrite(error) {
console.log(error.code);
}
,這裏是讀取我的數據的代碼:
function readUser(){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs){
fs.root.getFile('user.data', null, function(fe){
fe.file(function(file){
return readAsText(file);
}, failread);
}, failread);
}, failread);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log(evt.target.result);
};
return reader.readAsText(file);
}
它返回我的數據細如字符串,這裏是我得到的字符串{"status":"true","id":"1","password":"xx"}
,但是當我用我的數據使用JSON.parse時,它返回未識別的對象。這裏是它採用JSON.parse
部分:
readUser();
var user = JSON.parse(readUser());
console.log(user);
它甚至不會運行我與解析的JSON的console.log命令。
所以我會用改變我evt.target.result爲'JSON.parse(evt.target.result)'和然後返回'reader.readAsText(文件);'? – C1D 2013-02-16 09:41:31
我只是想出你的意思!非常感謝:D – C1D 2013-02-16 09:52:31