0

我有這種類型的JSON對象:動態創建JSON對象從給定的參數

jsonObject={visits:'3', 
     v1:{'timestamp':'1231313.311', 
      'time_year':'2011', 
      'time_month':'Jan', 
      'time_date':'15' 
      'X_value':'X' 
      }, 
     v2:{'timestamp':'1231313.311', 
      'time_year':'2011', 
      'time_month':'Jan', 
      'time_date':'15' 
      'X_value':'Y' 
      }, 
     v3:{'timestamp':'534224242.311', 
      'time_year':'2011', 
      'time_month':'Feb', 
      'time_date':'5', 
      'X_value':'Z' 
      } 
     } 

現在我想將它轉換成一個格式像...

JsonObject={'2011':{'Jan':{'15':['X','Y'] 
          }, 
        'Feb':{'5':'Z' 
          }, 
        } 
      } 

我怎麼能做到這一點...我已經嘗試迭代第一個JSONObject並取出年,月和日期值,但我無法從該數據創建新的JSONObject。

在此先感謝。

+0

這不是JSON,它只是一個JavaScript對象。您的問題似乎與JSON無關。 –

回答

0

如果您已經嘗試迭代原始對象,那麼您可能還沒有完成。您只需創建新對象:

var newObject = {}; 

for(var key in jsonObject) { 
    if(key == 'visits') 
     continue; 

    var year = jsonObject[key]['time_year']; 
    var month = jsonObject[key]['time_month']; 
    var date = jsonObject[key]['time_date']; 

    if(!(year in newObject)) 
     newObject[year] = {}; 

    if(!(month in newObject[year])) 
     newObject[year][month] = {}; 

    if(!(date in newObject[year][month])) 
     newObject[year][month][date] = []; 

    newObject[year][month][date].push(jsonObject[key]['X_value']); 
} 

JSFiddle demo, outputs into your browser console log