Parse JSON () ist schwierig zu verwenden, da es Fehler nicht gut verarbeitet. Bei einem Rückruf, beispielsweise von RunProgram oder einer Schaltfläche, wird ein unerwünschter Modelldialog erstellt, der den Fehler ankündigt. Der Fehler wird auch im Protokoll angekündigt. Um das Problem zu beheben, ist zusätzliches JSL erforderlich:
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, etwa wie parseJson(x, throwIfError() )
Ausfallsicheres JSON-Parsing