arrays - Find Value Type of a JSONValue (TJSONArray or TJSONObject) -


i standard library in delphi xe8

if assigned(jsonvalue)     case jsonvalue.valuetype of       jsarray  : processarrayresponse(jsonvalue tjsonarray);       jsobject : processobjectresponse(jsonvalue tjsonobject);     end; end; 

(this sample come https://github.com/deltics/delphi.libs/wiki/json using deltics.json library).

does know how standard library ?

thank you

you use is operator:

if assigned(jsonvalue) begin   if jsonvalue tjsonarray     processarrayresponse(tjsonarray(jsonvalue))   else if jsonvalue tjsonobject     processobjectresponse(tjsonobject(jsonvalue)); end; 

if want use case statement have create own lookup:

type   jsonvaluetype = (jsarray, jsobject, ...);  function getjsonvaluetype(jsonvalue: tjsonvalue): jsonvaluetype; begin   if jsonvalue tjsonarray exit(jsarray);   if jsonvalue tjsonobjct exit(jsobject);   ... end;  ...  if assigned(jsonvalue) begin   case getjsonvaluetype(jsonvalue) of     jsarray  : processarrayresponse(tjsonarray(jsonvalue));     jsobject : processobjectresponse(tjsonobject(jsonvalue));   end; end; 

or:

type   jsonvaluetype = (jsarray, jsobject, ...);  var   jsonvaluetypes: tdictionary<string, jsonvaluetype>;  ...  if assigned(jsonvalue) begin   case jsonvaluetypes[jsonvalue.classname] of     jsarray  : processarrayresponse(tjsonarray(jsonvalue));     jsobject : processobjectresponse(tjsonobject(jsonvalue));   end; end;  ...  initialization   jsonvaluetypes := tdictionary<string, jsonvaluetype>.create;   jsonvaluetypes.add('tsonarray', jsarray);   jsonvaluetypes.add('tsonobject', jsobject);   ... finalization   jsonvaluetypes.free; 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -