[英]Covert array to json object
I have an array like this 我有这样的数组
[ '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: ' ]
am trying to convert this array to a json
in the following format 正在尝试将此数组转换为以下格式的
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"
}
I need to remove all 'Value' string also how it can be obtain in the above format 我需要删除所有“值”字符串,以及如何以上述格式获取它
You can't create an associative array like that because JavaScript doesn't have associative arrays. 您不能创建像这样的关联数组,因为JavaScript没有关联数组。 But you can create an object, which is really what you want here.
但是您可以创建一个对象,这实际上是您想要的。
Here's one way to do it: 这是一种实现方法:
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];
}
The result is that newData
(in JSON form for readability) is: 结果是
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"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.