L oop массив json объект с использованием JavaScript в Пентахо - PullRequest
0 голосов
/ 07 марта 2020

У меня есть данные формата json:

"records":[
 {
   "status":"active",
   "version":5,
   "assigned_to":null,
   "form_values":
     {
       "lastName":"Doe",
       "photos":
         [
         {
          "photo_id":"ahfhghea08-c938-4ea7",
          "caption":null
         },
         {
          "photo_id":"38ffgh847d-0ced-4425",
          "caption":null
         },
         {
          "photo_id":"7hgj6a264-cba7-4165",
          "caption":null
         }

         ]
    },

      "status":"active",
      "version":1,
      "assigned_to":null,
      "form_values":
     {
       "lastName":"James",
       "photos":
         [
         {
          "photo_id":"ahfhghea08-c938-4ea7",
          "caption":null
         }

        ]
    }
 }
]

Я пытаюсь l oop через массив фотографий и добавить только photo_id без заголовка, разделенного на%.

Вывод должен быть таким: https://web.photos.com/photos/view?photos=ahfhghea08-c938-4ea7%38ffgh847d-0ced-4425%7hgj6a264-cba7-4165

Я могу отобразить его только с одним photo_id, и это вывод, который я получаю: https://web.photos.com/photos/view?photos=ahfhghea08-c938-4ea7

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

Я пишу сценарий, используя Javascript в Пентахо.

Обновление:

Это ввод json:

{"records":[{"status":"checked","version":5,"id":"bfc72756d-c819-4641-94a5-9ddd556345b","updated_at":"2019-11-25T16:07:46Z","client_created_at":"2019-11-25T14:38:43Z","client_updated_at":"2019-11-25T16:07:42Z","created_by":"Officer","created_by_id":"1ce0f34c-261b-437d-85d9-f79dda6be9d5","updated_by":"jOHN DOE","updated_by_id":"22d0da53-f153-4fdf-a009-8f2c9c0f8259","created_location":{"latitude":40.8159545,"longitude":-73.925375,"altitude":-30.1000003814697,"horizontal_accuracy":30.166},"updated_location":{"latitude":40.81592,"longitude":-73.9261654,"altitude":-23.7999992370605,"horizontal_accuracy":21.783},"created_duration":199,"updated_duration":1232,"edited_duration":2812,"form_id":"5ea14632-93ed-479c-afcb-3b94e163fc6f","project_id":null,"assigned_to":null,"assigned_to_id":null,"form_values":{"3aee":"MWF","c6da":{"other_values":[],"choice_values":["Supervisor"]},"117e":"2019-11-25","48bf":"Park","2e24":"Michael","ada7":"Doe","96cd":"no","931f":{"sub_thoroughfare":"213","thoroughfare":"Street","suite":null,"locality":null,"sub_admin_area":"Bronx County","admin_area":"","postal_code":"","country":""},"4755":"24","ffff":{"other_values":[],"choice_values":[""]},"a3e8":"9292140202","db5e":"10:30","d657":"09:38","6faa":"Michael dOE","dbcf":"2019-11-25","05b9":"Canal","69a7":"no","2738":"","3085":"","92fe":"2019-1484","8e8b":"no","40da":"","a804":"Street","dc96":[{"photo_id":"08b16f6b-68f0-45d2-b77c-87654059db6","caption":null},{"photo_id":"1d0569af1-2780-4a87-9e56-7e8c149604ac","caption":null},{"photo_id":"39868f21-1056-54fce-8c27-1e86991c4c11","caption":null}],"5d7d":"","f849":{"other_values":[],"choice_values":[""]},"eeb8":{"other_values":[],"choice_values":["In Street","On Sidewalk","Tree Pit"]},"c82d":"","b775":"","9b11":{"choice_values":["VIA Email Group","VIA Telephone"],"other_values":[]},"cc8e":"no","2135":{"choice_values":[""],"other_values":[]},"e537":"no","42d6":"yes","049f":"","15ae":"4554","c9e2":"47","photos":[{"photo_id":"abd56a08-c858-4ea7-989f-907a9*3241a93d","caption":null}],"1be6":"11:06","42ef":{"signature_id":"42c73-d075-45cb-a3bc-e7bdd1b4","timestamp":"2019-11-25T16:06:25Z"}},"latitude":40.8159545,"longitude":-73.925375,"altitude":-30.1000003814697,"speed":null,"course":289.8938,"horizontal_accuracy":30.166,"vertical_accuracy":null},{"status":"checked","version":4,"id":"a48c6ea-9f9b-4c89-9246-65468","created_at":"2019-11-26T15:33:23Z","updated_at":"2019-11-27T16:08:18Z","client_created_at":"2019-11-26T15:08:28Z","client_updated_at":"2019-11-27T16:08:18Z","created_by":"Jessie","created_by_id":"2a53-f153-4fdf-a009-8f2c8259","updated_by":"John","created_location":{"latitude":40.8164889,"longitude":-73.8912291,"altitude":-14.4613952637,"horizontal_accuracy":8.576},"updated_location":{"latitude":40.8392644,"horizontal_accuracy":5.984},"created_duration":1240,"updated_duration":90,"edited_duration":2639,"form_id":"5e32-93ed-479c-afcb-3b556fc6f","form_values":{"92fe":"2019-1494","5d7d":"","049f":"","42ef":{"signature_id":"82d-5ff-4e74-865e-af4a96547fbd9","timestamp":"2019-11-26T15:30:38.000Z"},"42d6":"yes","a3e8":"3478890138","05b9":"","6faa":"","3085":"","8e8b":"no","c9e2":"2","dbcf":"2019-11-26","48bf":"","1be6":"10:29","a804":"","eeb8":{"choice_values":["In Street"],"other_values":[]},"d657":"09:55","c6da":{"choice_values":[],"other_values":["Supervisor "]},"15ae":"4040","69a7":"no","db5e":"10:08","40da":"BX02","cc8e":"no","96cd":"no","photos":[{"photo_id":"918564fa9-eacc-585b9b-aa3e-a09637b1188","caption":null}],"2e24":"David","ffff":{"choice_values":[""],"other_values":[]},"dc96":[{"photo_id":"19145590-beb5-461e-bac2-6f45546af1a","caption":null}],"ada7":"","931f":{"country":"","sub_admin_area":"B","suite":null,"admin_area":"","locality":null,"postal_code":"","thoroughfare":"","sub_thoroughfare":"1231"},"2135":{"choice_values":[""],"other_values":[]},"3aee":"MWF","f849":{"choice_values":[""],"other_values":[]},"117e":"2019-11-26","e537":"no","4755":"2","2738":"","5d37":"Hazlog # 2019-1493","c82d":"","b775":"","9b11":{"choice_values":[],"other_values":[""]}},"latitude":40.8164889,"longitude":-73.8912291,"altitude":-14.4613952637,"speed":null,"course":318.7767,"horizontal_accuracy":8.576,"vertical_accuracy":null}]}

Я пытаюсь получить значение photo_id в атрибуте photos. Это: "photos":[{"photo_id":"918564fa9-eacc-585b9b-aa3e-a09637b1188","caption":null}]

Как вы можете видеть на входе json, иногда массив photos может содержать только одно значение photo_id, а иногда может содержать более одного. Когда доступно несколько значений photo_id, мне нужно объединить значения в этом формате: https://web.photos.com/photos/view?photos=(1st photo_id value)%(2nd photo_id value)%....

Я могу прочитать значение 1-го photo_id следующим образом: ['photos'])[0] ['photo_id'], но когда значение 2-го photo_id равно не предоставлено, я получаю неопределенный, и скрипт сломался.

Как я могу проверить, предоставлен ли 2-й photo_id, затем объединить его со строкой URL?

...