JSON прогоняется через $modx->fromJSON($json), на

JSON прогоняется через $modx->fromJSON($json), на выходе получается массив условий, чтобы он был верно разобран нужно соблюдать определенные правила, об этом подробнее можно почитать тут https://rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.where

Собственно все можете проверять в консоли modx.

$where = array(
    array(
        "available:="=>"0"
        ,"AND:toOrder:="=>"1"
    )
    ,"OR:available:="=>"1"
);
$c = $modx->newQuery('modResource');
$c->where($where);
$c->select('id');
$c->prepare()
echo $c->toSQL();

Вернет:

SELECT `id` FROM `modx_site_content` AS `modResource` WHERE  (  ( `modResource`.`available` = '0' AND `modResource`.`toOrder` = '1' )  OR `modResource`.`available` = '1' )  

А если сделать вот так:

echo $modx->toJSON($where);

получите вашу JSON строку:

{"0":{"available:=":"0","AND:toOrder:=":"1"},"OR:available:=":"1"}