将数据转换为类似于JSON的字符串

时间:2012-08-04 06:55:01

标签: javascript html5 optimization local-storage

有没有更好的方法来实现以下代码

<form id="myform" onsubmit="return saveUserData('firstname','lastname');" method="post">
function saveUserData() {
    createJSONString(arguments);
    return false;
}

function createJSONString(arguments) {
    var userDetails = "{";
    for (i = 0; i < arguments.length - 1; i++) {
        userDetails += '"' + arguments[i] + '":' + '"'     +document.getElementById(arguments[i]).value + '",';
    }
    userDetails += '"' + arguments[i] + '":' + '"' + document.getElementById(arguments[i]).value + "}";
    alert(userDetails);
}

基本上,从表单提交按钮调用函数saveUserData。因此,我们的想法是将参数传递给函数并创建类似字符串的JSON,以便将其存储在Chrome和Firefox的localStorage变量中。这个想法不会让OCP失败,因为将来如果我们添加中间名,JavaScript代码不需要改变,只会改变HTML。 有没有更好的方法来实现这个?

由于

1 个答案:

答案 0 :(得分:1)

你可以使用json.stringify方法制作JSON字符串。 使用json库,chrome和ff构建了这种方法。

http://json.org/

首先你必须为这样的数据制作javascript对象。

var data = { 
    name : 'blu..',
    age  : 19
};

JSON.stringify(data);

// result is => "{"name":"blu..","age":19}"



function createJSONString(arguments) {
    var obj = {};     
    for (i = 0; i < arguments.length - 1; i++) {
        obj[arguments[i]] = document.getElementById(arguments[i]).value;
    }

    return JSON.stringify(obj);
};