在JSON中拆分Javascript值

时间:2015-05-05 11:02:23

标签: javascript jquery ajax xml cordova

我需要将一个数组拆分成一个JSON数组,该数组应该遵循模式。

{{"url":url, "north":True "side":True}, {"url":url, "north":False, "side":True}}

我使用此代码获取url参数。正如您可以看到here,此代码显示3个复选框,您可以在其中选择图片是北侧,侧面还是您想要选择它。

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    xmlDoc = xmlHttp.responseXML;
    pictureTemp = [document.getElementById("imgfilename")];

    $('.login-form').append('<button onclick="sendAuswahl()">Send</button><br>');
    for (var i = 0; i < xmlDoc.getElementsByTagName("imgfilename").length; i++) {
      pictureTemp[i] = xmlDoc.getElementsByTagName("imgfilename")[i].childNodes[0].nodeValue;
      $('.login-form').append('<input type="checkbox" name="north" value="North"><input type="checkbox" name="orientation" value="Side"><input type="checkbox" name="url" value='+ pictureTemp[i]+'><img src='+ pictureTemp[i]+' width="50%"></br>');
    };
}

要获取所有勾选的复选框,我使用以下代码:

var arrayUrl = $("input[name='url']:checked").map(function(){
      return this.value;
}).get()

var arrayNorth = $("input[name='north']:checked").map(function(){
      return "True";
}).get()

var arrayOrientation = $("input[name='orientation']:checked").map(function(){
      return "True";
}).get()

要将选择转换为JavaScript对象并获得我上面描述的模式,我使用它:

var picture = {
      "url" : arrayUrl,
      "North" : arrayNorth,
      "Side" : arrayOrientation
};

但是当我提醒所选图像的值时,我得到了这个:

{"url":http://www.example.com, "north":True "side":True}

当我选择2张图像时,我得到了这个:

{"url":http://www.example.com, http://www.example2.com, "north":True "side":False}

而不是:

{{"url":http://www.example.com, "north":True "side":False}, {"url":http://www.example2.com, "north":False, "side":True}}

所以现在我的问题是:我如何擅长上述模式中的价值?

1 个答案:

答案 0 :(得分:0)

var picture = [];
$(arrayUrl).each(function(index) {
    picture.push({
        "url": arrayUrl[index],
        "North": arrayNorth[index],
        "Side": arrayOrientation[index]
    });
});