О синтаксисе пути этого JSON - PullRequest
0 голосов
/ 04 апреля 2011

Каким будет синтаксический путь к thumbnails.data?Кроме того, можно ли упростить такой вывод до {}'s вместо []'s и {}'s?

{
   "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
         }
      }
   ]
}

Спасибо

Ответы [ 3 ]

2 голосов
/ 04 апреля 2011
  1. Как мне получить данные миниатюр?

    Предполагается, что ваш объект JSON хранится в переменной myData:

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

    Обратите внимание, что это для конкретного примера, который вы опубликовали, и всегда вернет данные первого эскиза для первого результата. В реальном коде вы, вероятно, зациклите оба массива (results и thumbnails), чтобы извлечь все данные миниатюр для всех объектов результатов.

  2. Можно ли упростить этот объект JSON?

    Это наверняка может быть - это зависит от того, какова цель и как она генерируется. Если он возвращается веб-службой, которую вы не можете контролировать, то нет, вы, очевидно, не можете ее изменить. Если вы генерируете его, то, конечно, вы определяете объект и его значение. Например, вы можете ограничить количество миниатюр до 1 всегда, и поэтому вместо массива миниатюр у вас будет только миниатюрный объект.

    Однако, как я вижу это сейчас, это имеет большой смысл - ваши результаты могут включать 1 или более элементов, а следовательно, массив; там может быть более 1 миниатюрного изображения, поэтому там также используется массив ...

2 голосов
/ 04 апреля 2011

Если myData содержит рассматриваемую структуру данных, вы бы использовали

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

Что касается упрощения вашего вывода, да, это, безусловно, может быть упрощено, но мы должны увидеть кодкоторый генерирует это, чтобы сказать вам, как это сделать.

1 голос
/ 04 апреля 2011

Планируете ли вы иметь более одного эскиза на результат? Если нет, вы можете просто иметь:

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

и получить к нему доступ: results[i].thumbnails.data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...