2011-04-04 48 views
0

thumbnails.data的語法路徑是什麼? 也可以將這樣的輸出簡化爲{}'s而不是[]'s{}'s關於此JSON的路徑語法

{ 
    "returnValue":true, 
    "results":[ 
     { 
     "_id":"++HUS_WBo9OoOpWA", 
     "_kind":"com.palm.media.audio.file:1", 
     "_rev":3357, 
     "album":"Elements of Love: Ballads", 
     "albumArtist":"Earth, Wind & Fire", 
     "artist":"Earth, Wind & Fire", 
     "bookmark":0, 
     "createdTime":0, 
     "disc":{ 
      "position":1, 
      "total":1 
     }, 
     "duration":0, 
     "genre":"Rhythm & Blues", 
     "isRingtone":false, 
     "modifiedTime":1300682209, 
     "path":"/media/internal/Track 03 - Devotion.mp3", 
     "searchKey":"Earth, Wind & Fire Elements of Love: Ballads Devotion", 
     "size":6976284, 
     "sortKey":{ 
      "trackAndDisc":100003 
     }, 
     "thumbnails":[ 
      { 
       "_id":"d1e", 
       "data":"/media/internal/Track 03 - Devotion.mp3:216:5998", 
       "type":"embedded" 
      } 
     ], 
     "title":"Devotion", 
     "track":{ 
      "position":3, 
      "total":0 
     } 
     } 
    ] 
} 

感謝

回答

2

如果myData持有有問題的數據結構,你可以使用

myData.results[0].thumbnails[0].data 

至於你的輸出,是的,它肯定可以簡化的簡化,但我們會必須看到生成該代碼的代碼,以告訴你如何完成它。

2
  1. 如何獲取縮略圖數據?

    假設您的JSON對象存儲在變量myData

    myData.results[0].thumbnails[0].data 
    

    注意,這是給你的貼,將始終返回第一個縮略圖數據的第一個結果的具體例子。在實際代碼中,您可能會遍歷這兩個數組(resultsthumbnails)以提取全部縮略圖數據爲全部爲結果對象。

  2. 這個JSON對象能被簡化嗎?

    它當然可以 - 它取決於目的是什麼以及它是如何生成的。如果它被一個你無法控制的web服務返回,那麼不,你顯然不能改變它。如果你正在生成它,那麼肯定,你定義了這個對象和它的意思。例如,您可以將縮略圖的數量限制爲始終爲1,因此,您不必使用縮略圖數組,而只需要縮略圖對象。但是,正如我現在看到的那樣,這很有意義 - 您的結果可能包含一個或多個項目,因此可能是一個數組;有可能有超過1個縮略圖圖像,所以這裏也使用了一個陣列...

+0

JSON數據確實來自服務,而不是由我產生。感謝您的洞察力。 – cube 2011-04-04 16:45:24

1

您打算每個結果有多個縮略圖嗎?如果沒有,你可以有:

"thumbnails":{ 
       "_id":"d1e", 
       "data":"/media/internal/Track 03 - Devotion.mp3:216:5998", 
       "type":"embedded" 
      }, 

和訪問它:results[i].thumbnails.data