如何将对象转换为数组

时间:2015-10-22 13:08:43

标签: javascript json parsing

我有一个json数据,其属性为attributes.data。当我console.log(attributes.data)这个值时,我得到结果{"uid" : 1}我想将它转换为数组。 即{"uid" : 1}等我希望将其转换为格式数据uid:1。我将如何在javascripts中做到这一点。



 if (attributes.type == "POST") {
   xmlhttp.open(attributes.type, attributes.url, true);
   xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
   attributes.data = JSON.stringify(attributes.data);
   xmlhttp.send(attributes.data);
 }



  在Chrome网络选项卡中调试我有表格数据{" uid" :1}但我希望得到这个像uid:1我如何将其转换为

2 个答案:

答案 0 :(得分:0)

如果您想要的只是简单地将您的对象转换为数组,那么就可以完成这项任务:

var obj = {"key1":"value1","key2":"value2","key32":"value3","key4":"value4"};
var arr = [];
for (key in obj) {
   arr.push(key + ':' + obj[key]);
}

如果您真正想要的是使用AJAX将数据发布为字符串,那么您应该使用给定的obj对象:

var dataStr = JSON.stringify(obj);

答案 1 :(得分:0)

如果您需要的是一个包含如下值的数组:['uid:1', 'key:value', ...]

然后这会起作用:

var attribute = {
    data: {
      "uid": 1,
      "key2": 'value',
      "key3": 'value'

    }
  },
  key,
  myString = '';

for (key in attribute.data) {

  //this is the line that you want
  myString += "&" + key + ":" + attribute.data[key];
}


//the output of the fist element (there is only one now)
document.querySelector('#result').innerHTML = myString; // "uid:1"
<div id="result"></div>

希望它有所帮助。

修改

如果你想要一个只有“uid”元素的字符串

var attribute = {
    data: {
      "uid": 1,
    }
  },
  key,
  myString = '';

for (key in attribute.data) {

  //this is the line that you want
  if (key === "uid") {
    myString = key + ":" + attribute.data[key]
  }
}


//the output of the fist element (there is only one now)
document.querySelector('#result').innerHTML = myString; // "uid:1"
<div id="result"></div>