转换为数据转换成类似于JSON
问题描述:
的字符串是否有执行下面的代码转换为数据转换成类似于JSON
<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变量中。这个想法并不是失败,因为将来如果我们添加中间名,JavaScript代码不需要改变,只有HTML会改变。 有没有更好的实现方法?
感谢
答
您可以透过JSON.stringify方法使JSON字符串。使用json库的 ,chrome和ff已经构建在这个方法中。
首先你得让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);
};
+0
谢谢我在看到DCoders的评论后才实施了同样的功能。 – user1536201 2012-08-04 08:12:54
我试过缩进代码和粘贴。不知何故,每次我在我的编辑器中对代码进行格式化并将其粘贴到此处时,对齐会变得无用。我应该如何确保代码正确缩进? – user1536201 2012-08-04 06:56:30
假设我的编辑已被批准,我为您设置了代码格式。通常,它是四个空格而不是制表符。 – Daedalus 2012-08-04 06:59:41
当字段值恰好包含双引号时会发生什么?为什么你使用这个“JSON like”格式(在一个名为'createJSONString'而不是'createJSONishString'的函数中)而不是仅仅使用JSON? – DCoder 2012-08-04 07:31:31