Aufgrund einer Shoutbox-Diskussion und meiner Unzufriedenheit mit bisherigen JSON-UDFs habe ich mich mal rangesetzt
und meine Vorstellungen wie eine solche auszusehen hat umgesetzt.
Die bisherigen UDFs sind meiner Meinung nach
entweder unnötig umständlich, haben externe Abhängigkeiten oder kommen nicht mit Dictionaries klar.
Daher folgt
die UDF folgenden Prämissen:
- Ein JSON-String wird mit einer einzigen Funktion komplett in eine native (+ Scripting.Dictionary) AutoIt-Datenstruktur zur Weiterverarbeitung konvertiert. (Funktion _JSON_Parse)
- Andersherum kann aus beliebigen AutoIt-Datenstrukturen ein JSON-String erzeugt werden. (Funktion _JSON_Generate)
- Abfragen können entweder direkt in den AutoIt-Variablen stattfinden oder etwas sicherer in einer sehr simplen Abfragesprache (Funktion _JSON_Get)
Wer also ähnlich tickt wie ich findet eventuell hiermit eher seine Vorstellungen umgesetzt.
Wie verwendet man es nun? - na dann siehe hier:
AutoIt
Global $s_String = '[{"id":"4434156","url":"https://legacy.sky.com/v2/schedules/4434156","title":"468_CORE_1_R.4 Schedule","time_zone":"London","start_at":"2017/08/10 19:00:00 +0100","end_at":null,"notify_user":false,"delete_at_end":false,"executions":[],"recurring_days":[],"actions":[{"type":"run","offset":0}],"next_action_name":"run","next_action_time":"2017/08/10 14:00:00 -0400","user":{"id":"9604","url":"https://legacy.sky.com/v2/users/9604","login_name":"robin@ltree.com","first_name":"Robin","last_name":"John","email":"robin@ltree.com","role":"admin","deleted":false},"region":"EMEA","can_edit":true,"vm_ids":null,"configuration_id":"19019196","configuration_url":"https://legacy.sky.com/v2/configurations/19019196","configuration_name":"468_CORE_1_R.4"},{"id":"4444568","url":"https://legacy.sky.com/v2/schedules/4444568","title":"468_CORE_1_R.4 Schedule","time_zone":"London","start_at":"2017/08/11 12:00:00 +0100","end_at":null,"notify_user":false,"delete_at_end":false,"executions":[],"recurring_days":[],"actions":[{"type":"suspend","offset":0}],"next_action_name":"suspend","next_action_time":"2017/08/11 07:00:00 -0400","user":{"id":"9604","url":"https://legacy.sky.com/v2/users/9604","login_name":"robin@ltree.com","first_name":"Robin","last_name":"John","email":"robin@ltree.com","role":"admin","deleted":false},"region":"EMEA","can_edit":true,"vm_ids":null,"configuration_id":"19019196","configuration_url":"https://legacy.sky.com/v2/configurations/19019196","configuration_name":"468_CORE_1_R.4"}]'
Meine Versuche waren alle zufriedenstellend.
Bugs sind aber logischerweise nicht auszuschließen und können gerne
hier gemeldet werden.
Changelog:
2017/08/21 |
|
2017/08/22 |
|
2017/08/27 |
|
2017/09/04 |
|
2017/10/10 |
|
2017/10/11 |
|
2017/10/16 |
|
2017/10/31 |
|
2018/01/11 |
|
2019/03/03 |
|
2020/05/21 |
|
2020/10/21 |
|
2020/12/29 |
|
2021/01/07 |
|