Javascript 使用JQuery将表单解析为JSON对象,并考虑sub–;JSON对象

Javascript 使用JQuery将表单解析为JSON对象,并考虑sub–;JSON对象,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我试图从数据中提取数据以提交它,为此我使用了jquery serializeArray()函数。它工作得非常好,输出为{name:value}对象的数组。这个名称与我在表单中为每个元素给出的名称相似。但我希望在side子文档中有几个字段(名称)。例如 HTML <!DOCTYPE html> <html> <head> <script src="//code.jquery.com/jquery-2.1.1.min.js"></script&g

我试图从数据中提取数据以提交它,为此我使用了jquery serializeArray()函数。它工作得非常好,输出为{name:value}对象的数组。这个名称与我在表单中为每个元素给出的名称相似。但我希望在side子文档中有几个字段(名称)。例如

HTML

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
<form class="login">
    <label for="_user_name">username:</label>
    <input type="text" id="_user_name" name="user.name" value="dev.pus" />
    <label for="_user_pass">password:</label>
    <input type="password" id="_user_pass" name="user.pass" value="1234" />
    <button type="submit">login</button>
</form>
</body>
</html>
我想要的输出:

{
user :{name :"dev.pus",
       pass :"1234"

      }    
}

正如你们所看到的,我试着在名字中加上点,但它不起作用。有没有办法解决这个问题?谢谢

尝试通过从表单中提取值来构造Javascript对象。然后可以序列化它:

obj = { "user": { "name": $('#_user_name').val(),
                  "pass": $('#_user_pass').val()
                }
      };
alert(JSON.stringify(obj));
将返回一个数组:

[{"name":"user.name","value":"dev.pus"},{"name":"user.pass","value":"1234"}]
您应该“拆分”每个元素的“名称”,或者在输入时更改“名称”。 “拆分”示例:

obj = { "user": { "name": $('#_user_name').val(),
                  "pass": $('#_user_pass').val()
                }
      };
alert(JSON.stringify(obj));
$("form.login").serializeArray();  
[{"name":"user.name","value":"dev.pus"},{"name":"user.pass","value":"1234"}]