Я скопировал этот скрипт синтаксического анализа 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"}