/**
  * Prepares the Fields as a JSON object (including fieldOptions)
  * @param  Form   $form form object
  * @return JSON       Fields JSON object
  */
 public function prepareJsonFields()
 {
     $prepared_fields = array();
     $form_fields = $this->getSortedFields()->toArray();
     foreach ($form_fields as $form_field) {
         $field = $this->fields->find($form_field['id']);
         $form_field['hasOptions'] = $field->hasOptions();
         $form_field['fieldOptions'] = $form_field['hasOptions'] ? $field->fieldOptions->toArray() : array();
         $rules = explode('|', $form_field['rules']);
         $rules = new FieldRules($rules);
         $form_field['rules'] = $rules->toArray();
         $prepared_fields[] = $form_field;
     }
     return json_encode($prepared_fields);
 }