Analysieren Sie JSON () ist schwer zu verwenden, da es Fehler nicht gut behandelt. Bei einem Rückruf, vielleicht von RunProgram oder einer Schaltfläche, wird ein unerwünschter Modelldialog erstellt, der den Fehler ankündigt. Es wird auch den Fehler im Protokoll ankündigen. Es braucht zusätzliches JSL, um es zu reparieren:
New Window( "parsejson",
Button Box( "parse",
local( {birestore, errText},
birestore = Batch Interactive( 1 ); // makes an alert dialog from a button without this
errText = Log Capture( p = Parse JSON( "\!n" /* invalid json error */ ) ); // writes to the log without this
Batch Interactive( birestore ); // pop the previous behavior
If( Length( errText ), Throw( "Caught an error:" || char(errText) ) ); // handle unexpected error, somehow
/* use p here */
)
)
);
Vorschlag: Fügen Sie einen optionalen Parameter hinzu, um das Verhalten zu ändern, so etwas wie parseJson(x, throwIfError() )
Ausfallsicheres JSON-Parsing