Bueno, después de haber perdido el tiempo discutiendo sobre el formato del JSON, dejo acá parte de la solución a la ayuda que solicité al foro, la expresión regular.
   Código PHP:
    $patron = array('/([a-zA-Z^"]+(?=\:))/', //Agregamos las " a los itemId, xtype, maxLenght, etc.
            '/\'([a-zA-Z0-9_-]*?)\'/' //Reemplazamos las ' por " a los valores de los itemId, xtype, maxLength, etc
        );
        $replacement = array('"${1}"', '"${1}"');
        
        $data = preg_replace($patron, $replacement, $json);
        $jsonData = Zend_Json::decode($data);
        
        echo '<pre>'; 
        print_r($jsonData);
        exit(); 
    
  Faltaría que el primer patrón de la expresión regular le quite los espacios en blanco entre la palabra y el : 
Saludos y gracias!