我有一个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);
}

答案 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>