2013-07-19 158 views
0

我有對象,具有類似的結構:JavaScript的嵌套對象

{ 
    Name: "Test", 
    OperationProperties.Prop1: "Val1", 
    OperationProperties.Prop2: "Val2", 
    OperationProperties.Prop3: "Val3" 
} 

,但我需要它表示爲:

{ 
    Name: "Test", 
    OperationProperties: { 
          Prop1: "Val1", 
          Prop2: "Val2", 
          Prop3: "Val3" 
         } 
} 

請告訴我,有沒有辦法做到這一點,除了實施手冊鑄件?

+0

我不明白。你的第一個結構不是有效的JavaScript。它是一些序列化格式? –

+0

是的,它是反序列化的結構,從服務器收到 – Andrew

+0

哦,好的。如果它已經被反序列化爲JavaScript對象,那麼恐怕沒有自動的方法將你的'OperationProperties.PropX'變成一個子對象。您必須手動測試這些屬性。不過好奇,它開始作爲有效的JSON數據?如果是這樣,你使用'JSON.parse()'來解析它嗎? –

回答

0

我沒有找到任何方法如何做,除非手動編寫代碼來執行此投射。

function cast(source, prefix) { 
    var result = {}; 

    for (var property in source){ 
     if(property.startsWith(prefix)){ 
      var propertyNameWithoutPrefix = property.replace(prefix + '.'); 
      result[prefix][propertyNameWithoutPrefix] = source[property]; 
     }else { 
      result[property] = source[property] 
     } 
    } 

    return result; 
}