public function jsonSerialize($intDynamicPosition = null)
    {
        if (get_class($this->__subject) == "ValidFormBuilder\\GroupField"
            || get_class($this->__subject) == "ValidFormBuilder\\Area"
        ) {
            $identifier = $this->__subject->getId();
        } elseif (get_class($this->__subject) == "ValidFormBuilder\\StaticText") {
            $identifier = $this->__subject->getMeta("id");
        } else {
            $identifier = $this->__subject->getName();
            if ($intDynamicPosition > 0) {
                $identifier = $identifier . "_" . $intDynamicPosition;
            }
        }

        $arrReturn = array(
            "subject" => $identifier,
            "property" => $this->__property,
            "value" => $this->__value,
            "comparisonType" => $this->__comparisontype,
            "comparisons" => array()
        );

        /* @var $objComparison \ValidFormBuilder\Comparison */
        foreach ($this->__comparisons as $objComparison) {
            array_push($arrReturn["comparisons"], $objComparison->jsonSerialize());
        }

        return $arrReturn;
    }