2015-06-18 123 views
2

現在我有一個JSON如何製作JSON字典的詞典?

"Types":[ 
      { 
       "LowCadence":[ 
        { 
        "Reinforcement":"-1", 
        "Weight":"100", 
        "Message":"Pay attention. You're running low cadence. Your cadence is %d steps per minute." 
        } 
       ] 
      }, 
      { 
       "NormalCadence":[ 
        { 
        "Reinforcement":"0", 
        "Weight":"100", 
        "Message":"Great, your cadence is on target. Cadence is %d steps per minute.", 
        "EnforcementSound":"ding" 
        } 
       ] 
      }, 
      { 
       "HighCadence":[ 
        { 
        "Reinforcement":"1", 
        "Weight":"100", 
        "Message":"Slow down. You're running over your planned cadence. Cadence is %d steps per minute." 
        } 
       ] 
      } 
     ] 

這個結構,但我想它有這樣的結構

enter image description here

有誰知道如何把它寫在JSON?

回答

2

我相信你的JSON看起來像這樣:

var Types = { 
    NormalHR: { 
     Reinforcement: 0, 
     Weight: 100, 
     Message: 'Great! Your heart rate is in the zone.', 
     EnforcementSound: 'ding' 
    }, 
    HighHR: { 
     Reinforcement: 1, 
     Weight: 100, 
     Message: 'Slow down. Your heart rate is too high!' 
    }, 
    LowHR: { 
     Reinforcement: -1, 
     Weight: 100, 
     Message: 'Speed up. Low heart rate.' 
    } 
}; 

As @Balder says在他們的回答,您可以訪問使用字典風格的語法,如:

  • Types['NormalHR']['Reinforcement']

您還可以使用屬性訪問器的語法,如:

  • Types.NormalHR.Reinforcement

我不包括每個項目的「類型」的原因是,你可以輕易推斷它爲建築納克網格 - 如下:

  • typeof Types.NormalHR.Reinforcement(這將返回"number"
  • typeof Types.NormalHR.Message(這將返回"string"

同樣,得到計數 - 你可以指望的屬性特定對象。在現代瀏覽器,嘗試:

  • Object.keys(Types.NormalHR).length(這將返回2

對於舊的瀏覽器,參考其他方法在這裏:How to efficiently count the number of keys/properties of an object in JavaScript?

希望這有助於!

+0

謝謝你回答特洛伊,這不適用於網絡,它適用於iOS應用程序 –

+0

好的 - 對不起,如果我回答了錯誤的問題。 –

0

你沒有json中的「字典」,但你有鍵/值數組,它們的工作方式與他們非常相似。

在你的代碼,如果你想訪問:

普通的Cadence>信息您只需必須做到:

Types["NormalCadence"]["Message"] 

類似於淨詞典,但不完全是一個字典

+0

我不相信這會起作用,因爲您正在使用屬性樣式的訪問器嘗試從數組中獲取值。 –

+0

是的,因爲在json進程之後,它變成了一個數組在javascript – Balder

+0

這是哪種語言?它是Swift嗎?我在數組JSON中使用了Objective-C ...在使用它之前,我必須將其解析爲一個字典,這是對plist方式的一種開銷。所以我很好奇它是否可以模仿然後通過格式化 –

2

在Objective C中,你可以寫:

NSDictonary *types = @{ 
@"NormalHR": @{ 
    @"Reinforcement": [NSNumber numberWithInt:0], 
    @"Weight": [NSNumber numberWithInt:100], 
    @"Message": @"Great! Your heart rate is in the zone.", 
    @"EnforcementSound": @"ding" 
}, 
@"HighHR": @{ 
    @"Reinforcement": [NSNumber numberWithInt:1], 
    @"Weight": [NSNumber numberWithInt:100], 
    @"Message": @"Slow down. Your heart rate is too high!" 
}, 
@"LowHR": @{ 
    @"Reinforcement": [NSNumber numberWithInt:-1], 
    @"Weight": [NSNumber numberWithInt:100], 
    @"Message": @"Speed up. Low heart rate." 
} 

};

+0

我需要一個JSON ...所以可以通過它跨平臺 –

+1

所以正確的結構需要JSON是特洛伊阿爾福德的。如果你需要將它序列化成NSDictonary,請看這裏:http://stackoverflow.com/a/10121757/1306216 – simone