我有一个像这样的数组
[ 'quality',
'print-quality: 4',
'x-dimension',
'Value: 21590',
'Value: y-dimension',
'Value: 27940',
'Value: ',
'Value: media-bottom-margin',
'Value: 0',
'Value: media-left-margin',
'Value: 0',
'Value: media-right-margin',
'Value: 0',
'Value: media-top-margin',
'Value: 0',
'Value: ' ]
我正在尝试按以下格式将此数组转换为json
{ "quality": "print-quality: 4",
"x-dimension": "21590",
"y-dimension": "27940",
"media-bottom-margin": "0",
"media-left-margin" : "0",
"media-right-margin": "0",
"media-top-margin" : "0"
}
我需要删除所有'Value'字符串以及如何以上述格式获取
答案 0 :(得分:4)
您不能创建这样的关联数组,因为JavaScript没有关联数组。但是你可以创建一个对象,这就是你想要的。
这是一种方法:
var data = [ 'quality',
'print-quality: 4',
'x-dimension',
'Value: 21590',
'Value: y-dimension',
'Value: 27940',
'Value: ',
'Value: media-bottom-margin',
'Value: 0',
'Value: media-left-margin',
'Value: 0',
'Value: media-right-margin',
'Value: 0',
'Value: media-top-margin',
'Value: 0',
'Value: ' ],
cleanData,
newData = {}; // initialize the new object
cleanData = data
.map( function(x) { return x.replace(/^Value: /, ''); }) // remove leading "Value: "
.filter( function (x) { return !x.match(/^$/); } ); // strip empty values
for (i = 0; i < cleanData.length; i += 2) { // loop over the cleaned-up array
newData[cleanData[i]] = cleanData[i + 1];
}
结果是newData
(以JSON格式表示可读性)是:
{
"quality":"print-quality: 4",
"x-dimension":"21590",
"y-dimension":"27940",
"media-bottom-margin":"0",
"media-left-margin":"0",
"media-right-margin":"0",
"media-top-margin":"0"
}