通过JS

时间:2016-03-08 18:24:17

标签: javascript html json append

我在文件colors.json

中有JSON数组
{
"colors": [
    {"RGB": "100, 33, 93","HEX": "Computer Science"},
    {"RGB": "33, 82, 100","HEX": "#55d1ff"},
    {"RGB": "32, 56, 11","HEX": "#518e1d"}
   ]
}

和js addColors.js

function addColor(){
    //code
}

从html表单运行。

从html表单获取数据后,通过js,我如何将它附加到colors.json文件?

谢谢 约什

2 个答案:

答案 0 :(得分:2)

var json = {

"colors": [
    {"RGB": "100, 33, 93","HEX": "Computer Science"},
    {"RGB": "33, 82, 100","HEX": "#55d1ff"},
    {"RGB": "32, 56, 11","HEX": "#518e1d"}
   ]

}
// example: newValue = {"RGB": "100, 33, 93","HEX": "#518e1X"}
function addColor(newValue) {    

json.colors.push(newValue);

} 

答案 1 :(得分:0)

我不完全理解您的问题,请提供更多信息,这里的答案是假设您要修改磁盘上的真实文件。

我假设您正在使用node.js,而colors.js驻留在HTTP服务器上,用户可以通过HTML表单提交一些应添加到colors.js的数据。

在服务器上:

var fs = require("fs");
var express = require("express");
var app = express();
var bodyParser = require('body-parser');

function addColor(newColor) {
    // Get content from file
    var contents = fs.readFileSync("colors.json");

    // Define to JSON type
    var jsonContent = JSON.parse(contents);

    // Add new color
    jsonContent.colors.push(newColor);

    // Save file to disk
    fs.writeFileSync("colors.json", JSON.stringify(jsonContent));
}

 app.use(bodyParser.json());

 /* serves main page */
 app.get("/", function(req, res) {
    res.sendfile('colors.json');
 });

 app.post("/", function(req, res) {
    // Add color to file
    addColor(req.body);

    res.send("OK");
 });

 var port = process.env.PORT || 5000;
 app.listen(port, function() {
   console.log("Listening on " + port);
 });

要将颜色POST JSON添加到http://localhost:5000/,请获取此地址以获取当前colors.json文件。在这种情况下,您应该使用AJAX(例如jQuery - ajax)以JSON格式将表单数据发布到服务器。