简体   繁体   English

隐藏数组到json对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM