我想在Tizen项目(移动设备)中将新信息写入现有的JSON文件。我发现没有PHP(或Node.js)是不可能的,并且Tizen不支持PHP。有没有办法在没有PHP的情况下将新数据发送到JSON(并且没有创建本地数据库)?
答案 0 :(得分:1)
是的,可以使用Tizen FileSystem API和JSON.parse()& JSON.stringify()。 [作为Chris G注明评论]
var res,file,text,jsonInit,obj,jsonString;
function createFile(){
tizen.filesystem.resolve("documents", function(dir) {
res = dir.createDirectory("res");
file = res.createFile("data.json");
file.openStream(
"w",
function(fs) {
jsonInit = '{"data1":"a","data2":"b"}';
fs.write(jsonInit);
alert("JSON file Created");
fs.close();
}, function(e) {
console.log("Error " + e.message);
}, "UTF-8");
});
}
function addInfo(){
tizen.filesystem.resolve("documents", function(dir) {
file = dir.resolve("res/data.json");
file.openStream(
"rw",
function(fs) {
text = fs.read(file.fileSize);
var obj = JSON.parse(text);
obj.data3 = 'c';
jsonString = JSON.stringify(obj);
fs.position = 0;
fs.write(jsonString);
fs.close();
alert("New Info added on data3 key");
}, function(e) {
console.log("Error " + e.message);
}, "UTF-8");
});
}
function readFromFile(){
tizen.filesystem.resolve("documents", function(dir)
{
var file = dir.resolve("res/data.json");
file.openStream(
"r",
function(fs) {
text = fs.read(file.fileSize);
fs.close();
obj = JSON.parse(text);
alert("Test read --> value on data2:" +obj.data2);
alert("Test read --> value on data3:" +obj.data3);
}, function(e) {
console.log("Error " + e.message);
}, "UTF-8");
});
}
测试演示:
查看实施指南和API参考。