Должен ли я создать новый меньший массив из декодированного JSON или использовать весь массив JSON как есть? - PullRequest
0 голосов
/ 26 июня 2019

Мой вызов API возвращает довольно большой результат JSON, и моей первоначальной мыслью было проанализировать две части данных, которые мне нужны для каждого события, и создать свой собственный массив. Имеет ли смысл передавать возвращаемый JSON или очищать его для моего использования в приложении. Что является более эффективным?

Ниже приведен пример одного «события», каждый результат которого может содержать 20-50 событий в данных. Все, что мне нужно, это ['resultsPage']['results']['event']['location']['lng'] и ['resultsPage']['results']['event']['location']['lat']:

{
  "resultsPage": {
    "results": {
      "event": [
        {
          "id":11129128,
          "type":"Concert",
          "uri":"http://www.songkick.com/concerts/11129128-wild-flag-at-fillmore?utm_source=PARTNER_ID&utm_medium=partner",
          "displayName":"Wild Flag at The Fillmore (April 18, 2012)",
          "start": {
            "time":"20:00:00",
            "date":"2012-04-18",
            "datetime":"2012-04-18T20:00:00-0800"
          },
          "performance": [
            {
              "artist": {
                "id":29835,
                "uri":"http://www.songkick.com/artists/29835-wild-flag?utm_source=PARTNER_ID&utm_medium=partner",
                "displayName":"Wild Flag",
                "identifier": []
              },
              "id":21579303,
              "displayName":"Wild Flag",
              "billingIndex":1,
              "billing":"headline"
            }
          ],
          "location": {
            "city":"San Francisco, CA, US",
            "lng":-122.4332937,
            "lat":37.7842398
          },
          "venue": {
            "id":6239,
            "displayName":"The Fillmore",
            "uri":"http://www.songkick.com/venues/6239-fillmore?utm_source=PARTNER_ID&utm_medium=partner",
            "lng":-122.4332937,
            "lat":37.7842398,
            "metroArea": {
              "id":26330,
              "uri":"http://www.songkick.com/metro_areas/26330-us-sf-bay-area?utm_source=PARTNER_ID&utm_medium=partner",
              "displayName":"SF Bay Area",
              "country": { "displayName":"US" },
              "state": { "displayName":"CA" }
            }
          },
          "status":"ok",
          "popularity":0.012763
        }, ....
      ]
    },
    "totalEntries":24,
    "perPage":50,
    "page":1,
    "status":"ok"
  }
}

1 Ответ

1 голос
/ 26 июня 2019

Мой субъективный ответ - просто использовать весь ответ в вашем приложении, получая только то, что вам нужно, когда вам это нужно. Потеря времени на извлечение только тех данных, которые вам нужны, может оказаться ненужной оптимизацией, и ваше время лучше потратить в другом месте.

Оптимизируйте только то, что вы измеряете. Если вы можете измерить время выполнения вашего приложения, возможно, с помощью профилировщика, например , с Xdebug , то вы можете использовать данные, чтобы принять обоснованное решение для оптимизации таким образом. Я предполагаю, что ваше приложение может использовать оптимизации в другом месте, прежде чем вы сделаете это, но опять же, без данных, это всего лишь предположение.

...