@staticmethod<EOL><INDENT>def fromJSON(jdata):<DEDENT>
if jdata['<STR_LIT:type>'] == '<STR_LIT>':<EOL><INDENT>queries = [orb.Query.fromJSON(jquery) for jquery in jdata['<STR_LIT>']]<EOL>out = orb.QueryCompound(*queries)<EOL>out.setOp(orb.QueryCompound.Op(jdata['<STR_LIT>']))<EOL>return out<EOL><DEDENT>else:<EOL><INDENT>if jdata.get('<STR_LIT>'):<EOL><INDENT>model = orb.schema.model(jdata.get('<STR_LIT>'))<EOL>if not model:<EOL><INDENT>raise orb.errors.ModelNotFound(schema=jdata.get('<STR_LIT>'))<EOL><DEDENT>else:<EOL><INDENT>column = (model, jdata['<STR_LIT>'])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>column = (jdata['<STR_LIT>'],)<EOL><DEDENT>query = orb.Query(*column)<EOL>query.setOp(orb.Query.Op(jdata.get('<STR_LIT>', '<STR_LIT>')))<EOL>query.setInverted(jdata.get('<STR_LIT>', False))<EOL>query.setCaseSensitive(jdata.get('<STR_LIT>', False))<EOL>query.setValue(jdata.get('<STR_LIT:value>'))<EOL>for func in jdata.get('<STR_LIT>', []):<EOL><INDENT>query.addFunction(orb.Query.Function(func))<EOL><DEDENT>for entry in jdata.get('<STR_LIT>', []):<EOL><INDENT>query.addMath(orb.Query.Math(entry.get('<STR_LIT>')), entry.get('<STR_LIT:value>'))<EOL><DEDENT>return query<EOL><DEDENT>
Creates a new Query object from the given JSON data.

:param      jdata | <dict>

:return     <orb.Query> || <orb.QueryCompound>