jQuery如何获取json {" InputName":" Value" ...}

时间:2017-03-07 15:22:14

标签: jquery json asp.net-mvc json.net

您好我有一个HTML表单,我想使用jQuery序列化,但我想得到这样的格式:

{ "Message":"message textg","Tags":"tags text","Facebook":"true"...}

我在表单中的输入是:

<textarea name="Message" rows="5" value="" required />
<input type="text" name="Tags" value="">
<input type="checkbox" name="Facebook" checked="checked">
<input type="checkbox" name="Twitter" checked="checked">
<textarea name="FacebookText" rows="5" value="" />
<textarea rows="5" name="TwitterText" value="" />

如果我这样做:

JSON.stringify($('#form-message').serialize());然后我得到一个字符串:

"Message=Message+text&Tags=Tags&Facebook=on&FacebookText=Facebook+text&Twitter=on&TwitterText=Twitter+text"

如果我这样做:

JSON.stringify($('#form-message').serializeArray());然后我得到一个字符串:

[{"name":"Message","value":"Message Text"},{"name":"Tags","value":"Tags"},{"name":"Facebook","value":"on"},{"name":"FacebookText","value":"Facebook Text"},{"name":"Twitter","value":"on"},{"name":"TwitterText","value":"Twitter Text"}]

1 个答案:

答案 0 :(得分:0)

在第一个示例中,您JSON.stringify一个字符串。哪个会返回错误的结果。试试这个:

var paramObj = {};
$.each($('#form-message').serializeArray(), function(_, kv) {
 paramObj[kv.name] = kv.value;
});
var data = JSON.stringify(paramObj);