我在javascript中有一个变量,其中包含json记录的结构。是否可以创建并将其写为.json?谁能给我一个例子?我怀疑我需要使用php,但找不到类似的示例。
来自我的名为canvasJS.js的javascript文件:
var delayInMilliseconds = 1000; //1 second
setTimeout(function() {
seq["canvases"] = allCanvases;
var jarraySeq = [];
jarraySeq.push(seq);
obj["sequences"] = jarraySeq;
}, delayInMilliseconds);
console.log(obj);
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "/json.php");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify(obj));
这是我的json.php文件-
<?php
debug_to_console("test");
$json = file_get_contents('php://input');
file_put_contents('file.json', $json);
function debug_to_console($data) {
$output = $data;
if (is_array($output))
$output = implode(',', $output);
echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}
?>
但是我无法创建file.json,也无法在控制台中得到错误。知道为什么吗?
答案 0 :(得分:0)
这就是我要做的
javascript
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://localhost/json-writer.php");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify({prop:"value"}))
php
$json = file_get_contents('php://input');
file_put_contents('file.json', $json);
答案 1 :(得分:-1)
可以将javascript对象作为json记录写入.json文件: 1.假设存在一个包含json记录的对象:
var object = {
// data inside
}
var jsonString = JSON.stringify(object)
var fs = require('fs');
fs.writeFile('filename.json', jsonString, callback)
默认字符编码为utf8
,否则可以指定编码格式:(以上代码与之相同)
fs.writeFile('filename.json', jsonString, 'utf8', callback);
可以通过fs对象的回调函数来处理任何错误。例如:
fs.writeFile('filename.json', jsonString, (err) => {
if (err) throw err;
console.log('File saved successfully!');
});
fs.readFile('filename.json', 'utf8', callback);
readFile
回调的格式为:(error, data)
。 data
是文件的内容。这种方法可以像这样使用:
fs.readFile('filename.json', 'utf8', (error, data) => {
if (error){
console.log(error);
} else {
object = JSON.parse(data); //parse JSON string to object
// make changes to object
jsonString = JSON.stringify(obj); //encode object back to JSON string
fs.writeFile('filename.json', jsonString, 'utf8', callback); // over-write the json file
}
});
writeFile
回调可以处理写入期间的任何错误:
fs.readFile('filename.json', 'utf8', (error, data) => {
if (error){
console.log(error);
} else {
object = JSON.parse(data); //parse JSON string to object
// make changes to object
jsonString = JSON.stringify(obj); //encode object back to JSON string
fs.writeFile('filename.json', jsonString, 'utf8', (err) => {
if (err) throw err;
console.log('File saved successfully!');
}); // over-write the json file
}
});
您可以参考File System API documentation以获得有关此内容的更多详细信息。