簡體   English   中英

將具有命名值的復雜多維數組轉換為 JSON

[英]Converting a complex multidimensional array with named values to JSON

我有一個需要轉換為 JSON 的數組。 我的數組classProfiles的結構如下(在輸入數組名稱后從控制台 output 復制並粘貼):

Buildings_clear: Array(0)
  band1: [Min: 24, Max: 24, Mean: 24, Median: 24, StdDev: 0]
  band2: [Min: 22, Max: 23, Mean: 22.5, Median: 22.5, StdDev: 0.5]
  band3: [Min: 18, Max: 19, Mean: 18.5, Median: 18.5, StdDev: 0.5]
  band4: [Min: 16, Max: 19, Mean: 17.5, Median: 17.5, StdDev: 1.5]
  band5: [Min: 18, Max: 23, Mean: 20.5, Median: 20.5, StdDev: 2.5]
  band6: [Min: 23, Max: 27, Mean: 25, Median: 25, StdDev: 2]
  band7: [Min: 25, Max: 30, Mean: 27.5, Median: 27.5, StdDev: 2.5]
  band8: [Min: 20, Max: 25, Mean: 22.5, Median: 22.5, StdDev: 2.5]
  band8a: [Min: 28, Max: 33, Mean: 30.5, Median: 30.5, StdDev: 2.5]
  band9: [Min: 8, Max: 8, Mean: 8, Median: 8, StdDev: 0]
  band10: [Min: 0, Max: 0, Mean: 0, Median: 0, StdDev: 0]
  band11: [Min: 28, Max: 34, Mean: 31, Median: 31, StdDev: 3]
  band12: [Min: 19, Max: 24, Mean: 21.5, Median: 21.5, StdDev: 2.5]
  length: 0
  __proto__: Array(0)
Grass_clear: Array(0)
  band1: [Min: 17, Max: 24, Mean: 18.61764705882353, Median: 17, StdDev: 2.70092256441423]
  band2: [Min: 13, Max: 21, Mean: 15.441176470588236, Median: 14, StdDev: 2.6030657996088817]
  band3: [Min: 13, Max: 19, Mean: 14.823529411764707, Median: 14, StdDev: 1.8225803982152553]
  band4: [Min: 10, Max: 22, Mean: 13.823529411764707, Median: 13, StdDev: 3.3560357236696263]
  band5: [Min: 18, Max: 24, Mean: 20.441176470588236, Median: 20, StdDev: 1.5183422940165066]
  band6: [Min: 22, Max: 48, Mean: 34, Median: 35, StdDev: 5.7650059945889955]
  band7: [Min: 24, Max: 58, Mean: 40.11764705882353, Median: 41, StdDev: 7.718445080692602]
  band8: [Min: 24, Max: 61, Mean: 41.14705882352941, Median: 42.5, StdDev: 8.398642582693581]
  band8a: [Min: 27, Max: 67, Mean: 46.588235294117645, Median: 48, StdDev: 9.003651700539992]
  band9: [Min: 7, Max: 19, Mean: 14.529411764705882, Median: 16, StdDev: 3.24703751058649]
  band10: [Min: 0, Max: 0, Mean: 0, Median: 0, StdDev: 0]
  band11: [Min: 29, Max: 50, Mean: 35.94117647058823, Median: 34, StdDev: 5.530350358386456]
  band12: [Min: 13, Max: 35, Mean: 19.08823529411765, Median: 17, StdDev: 6.084539941324887]
  length: 0
  __proto__: Array(0)
Soil_clear: Array(0)
  band1: [Min: 24, Max: 24, Mean: 24, Median: 24, StdDev: 0]
  band2: [Min: 26, Max: 28, Mean: 27, Median: 27, StdDev: 0.816496580927726]
  band3: [Min: 26, Max: 29, Mean: 27.666666666666668, Median: 28, StdDev: 1.247219128924647]
  band4: [Min: 29, Max: 35, Mean: 32.333333333333336, Median: 33, StdDev: 2.494438257849294]
  band5: [Min: 26, Max: 30, Mean: 28.333333333333332, Median: 29, StdDev: 1.699673171197595]
  band6: [Min: 30, Max: 35, Mean: 32.666666666666664, Median: 33, StdDev: 2.0548046676563256]
  band7: [Min: 33, Max: 38, Mean: 35.666666666666664, Median: 36, StdDev: 2.0548046676563256]
  band8: [Min: 36, Max: 43, Mean: 39.666666666666664, Median: 40, StdDev: 2.8674417556808756]
  band8a: [Min: 36, Max: 42, Mean: 39.333333333333336, Median: 40, StdDev: 2.494438257849294]
  band9: [Min: 8, Max: 8, Mean: 8, Median: 8, StdDev: 0]
  band10: [Min: 0, Max: 0, Mean: 0, Median: 0, StdDev: 0]
  band11: [Min: 37, Max: 42, Mean: 40.333333333333336, Median: 42, StdDev: 2.357022603955158]
  band12: [Min: 27, Max: 31, Mean: 29.666666666666668, Median: 31, StdDev: 1.8856180831641267]
  length: 0
  __proto__: Array(0)
length: 0
__proto__: Array(0)

在控制台中鍵入typeof classProfiles會給我"object"

如果我試試這個:

var classProfilesJSON = JSON.stringify(classProfiles)

...然后classProfilesJSON在控制台中打印為"[]"

所以我首先嘗試使用 jQuery 將數組轉換為 object :

var classProfilesObject = $.extend({},classProfiles)
var classProfilesJSON = JSON.stringify(classProfilesObject)

...這導致ClassProfilesJSON看起來像這樣:

"{\"Grass_clear\":[],\"Buildings_clear\":[],\"Soil_clear\":[]}"

我在這里做錯了什么? 如何將此數組轉換為完整且可用的 JSON,保持所有名稱/鍵和值不變?

如果其他人遇到同樣的困難,我的解決方案首先是調整我聲明/創建這些 arrays 的方式,並將它們設置為對象:

在我像這樣創建 arrays 的代碼的相關部分中......

var classProfiles = [];

...我需要將這些行更改為這樣,以便我創建對象而不是 arrays:

var classProfiles = {};

然后(在我的代碼的其他部分對使用對象與使用數組的不同之處進行了一些其他調整之后)可以將我的對象(不是數組)序列化為 JSON。

暫無
暫無

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

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