将字符串解析为对象以进行发布

时间:2014-01-28 16:22:31

标签: jquery arrays json

我需要一种方法来解析一个字符串,循环遍历它,将它的元素添加到一个对象中并用它做一个帖子。

我们的遗留表单只接受参数“字母”,我们不想在那里更改任何内容。

例如。

 <form>
     <input type="checkbox" name="letters" value="a" />
     <input type="checkbox" name="letters" value="b" />
 </form>

 var msg = "x;y;z";
 var a = msg.split(';');
 for (i = 0; i < a.length; i++) {
 .....

我将使用什么类型的对象以及如何将其添加到此格式中?

 someobj = { letters: a, letters: b, letters: c }

这是否有效?

这将用于做一个      $ .post('/',someobj,function(){});

将会做

 $.post('/', { letters: a, letters: b, letters: c }, function() { });

或者有更简单的方法吗?

2 个答案:

答案 0 :(得分:0)

如果您只需要提交数组,那么您已拥有大部分代码:

var msg = "x;y;z";
var a = msg.split(';');
$.post(url,
    {letters: a},
    function ( jsonResults ) {
        // ...
    }
);

答案 1 :(得分:0)

执行此操作时:

someobj = { letters: "a", letters: "b", letters: "c" }

结果将是:

someobj = { letters: "c" }

因为,无论如何,您一次又一次地替换此对象的letters键。

我建议将此逗号分隔为数组,如:

someobj = { letters: msg.split(";")}

或者,在该对象中将其作为字符串发送, 这将执行以下操作:

someobj = { letters: msg.split(";").join(",")}

someobj = { letters: msg.replace(/\;/g, ",")}