Разбор Json в Filemaker перезаписывает итерацию - PullRequest
0 голосов
/ 17 мая 2018

Я скопировал этот скрипт синтаксического анализа json отсюда: https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help/json-functions.html#ww1155222

filemaker Скрипт синтаксического анализа json:

Set Variable [ $ProductCount ; Value:
   ValueCount (
      JSONListKeys ( $$JSON ; "bakery.product" )
   ) ]
Set Variable [ $i; Value: 0 ]
If [ $ProductCount > 0 ]
   Loop
      New Record/Request
      Set Field [ Products::ID ;
         JSONGetElement ( $$JSON ; "bakery.product[" & $i & "]id" ) ]
      Set Field [ Products::Price ;
         JSONGetElement ( $$JSON ; "bakery.product[" & $i & "]price" ) ]
      Set Field [ Products::Stock ;
         JSONGetElement ( $$JSON ; "bakery.product[" & $i & "]stock" ) ]
      Commit Records/Requests [ With dialog: Off ]
      Set Variable [ $i ; Value: $i + 1 ]
      Exit Loop If [ $i ≥ $ProductCount ]
   End Loop
End If

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

Вот мой сценарий:

Insert from URL [ Select; with dialog: Off ; $json; "web address"]    
Set Variable [ $grievanceCount ; Value:
       ValueCount (
          JSONListKeys ( $json ; "submissions" )
       ) ]
    Set Variable [ $i; Value: 0 ]
    If [ $grievanceCount > 0 ]
       Loop
          New Record/Request
          Set Field [ grievanceSubmissions::ID ;
             JSONGetElement ( $json ; "submissions[" & $i & "]id" ) ]
   Commit Records/Requests [ With dialog: Off ]
          Set Variable [ $i ; Value: $i + 1 ]
          Exit Loop If [ $i ≥ $grievanceCount ]
       End Loop
    End If

JSON:

{"submissions": [{"id": "383694318", "timestamp": "2018-02-09 15:23:45 "," user_agent ":" Mozilla / 5.0 (Windows NT 6.1; rv: 58.0) Gecko / 20100101 Firefox / 58.0 "," remote_addr ":" 1.1.1.1 "," payment_status ":""," latitude ":" 0 "," longitude ":" 0 "," read ":" 1 "}, {" id ":" 397263244 "," timestamp ":" 2018-04-02 11:02:53 "," user_agent ":" Mozilla / 5.0 (iPhone; процессор iPhone OS 11_2_6, как Mac OS X) AppleWebKit / 604.5.6 (KHTML, как Gecko) Версия / 11.0 Mobile / 15D100 Safari / 604.1 "," remote_addr ":"1.1.1.1" , "payment_status": "", "широта": "0", "долгота": "0", "читать": "1"}, { "идентификатор": "397578480", "метка времени":"2018-04-03 12:23:12", "user_agent": "Mozilla / 5.0 (Linux; Android 7.0; SAMSUNG SM-G935A Build / NRD90M) AppleWebKit / 537.36 (KHTML, как Gecko) SamsungBrowser / 6.4 Chrome / 56.0.2924.87 Mobile Safari / 537.36 "," remote_addr ":" 1.1.1.1 "," payment_status ":" "," latitude ":" 0 "," longitude ":" 0 "," read ":" 0 "}], "всего": 3, "страницы": 1, "pretty_field_id": "59493345"}

...