簡體   English   中英

隱藏數組到json對象

[英]Covert array to json object

我有這樣的數組

[ '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" 
 }

我需要刪除所有“值”字符串,以及如何以上述格式獲取它

您不能創建像這樣的關聯數組,因為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"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM