diff --git a/django_forms_as_jsonschema/jsonschema.py b/django_forms_as_jsonschema/jsonschema.py
index 9dab3afb29b1b1aa101342a5b80924aecfe21dd9..2aa468f5b38304c8f79fb947f6f9562e739e9b0a 100644
--- a/django_forms_as_jsonschema/jsonschema.py
+++ b/django_forms_as_jsonschema/jsonschema.py
@@ -132,21 +132,25 @@ class JSONSchema:
             case forms.CheckboxInput:
                 new_field["type"] = "boolean"
 
-            case forms.Select:
-                new_field["type"] = "string"
-                new_field["enum"] = []  # Fixme: load data from widget.options(…)
-
-            case forms.NullBooleanSelect:
-                ...
-
-            case forms.SelectMultiple:
-                ...
-
-            case forms.RadioSelect:
-                ...
-
-            case forms.CheckboxSelectMultiple:
-                ...
+            case forms.Select | forms.SelectMultiple | forms.RadioSelect | forms.CheckboxSelectMultiple, forms.NullBooleanSelect:
+                one_of = []
+                for const, title in field.widget.choices:
+                    one_of.append(dict(const=str(const), title=str(title)))
+
+                if field.widget.allow_multiple_selected:
+                    new_field["type"] = "array"
+                    new_field["items"] = {
+                        "type": "string",
+                        "oneOf": one_of
+                    }
+                else:
+                    new_field["type"] = "string"
+                    new_field["oneOf"] = one_of
+
+                if type(field.widget) == forms.RadioSelect:
+                    new_field["x-display"] = "radio"
+                elif type(field.widget) == forms.CheckboxSelectMultiple:
+                    new_field["x-display"] = "checkbox"
 
             case forms.SplitDateTimeWidget:
                 ...