c++ - jsoncpp how to check if tag is null .isNull() throw assertion -


im using jsoncpp , great when need check if json structure contains tag when :

userroot0["error"].isnull() 

its throws me assert json_value.cpp line 1025

json_assert( type_ == nullvalue  ||  type_ == objectvalue ); 

i want check if response im getting type:

{     "error" : {         "message" : "error validating application.",         "type" : "oauthexception",         "code" : 190     } } 

the [] operator valid jsonvalue objects of type object or null. others (int, bool, array, etc.) assert.

if userroot0 object array or other non-object type, have more work (like iterating sub-nodes) find target node may or may not contain error. print userroot0.tostyledstring() see json looks like, , make sure looks json object (see json.org nice overview of is).

a "todo" comment @ top of json_value.cpp source file (where json_assert defined) implies developers may planning more robust error handling instead of these asserts in future versions, in meantime, can check yourself, this:

if(userroot0.isobject() && userroot0.ismember("error"))     // process error node else     // node isn't object node or doesn't contain "error" key 

the ismember() check assert non-object nodes, sure check isobject() before checking ismember() if userroot0 isn't guaranteed object.


Comments

Popular posts from this blog

delphi - How to convert bitmaps to video? -

jasper reports - Fixed header in Excel using JasperReports -

python - ('The SQL contains 0 parameter markers, but 50 parameters were supplied', 'HY000') or TypeError: 'tuple' object is not callable -