diff --git a/src/Renderer/JsonNormalizedRenderer.php b/src/Renderer/JsonNormalizedRenderer.php
index 008168aad448403fdd338b290a9a3a2e58aaf35f..da9e1f8cb103a51b548943033c40b270192ef103 100644
--- a/src/Renderer/JsonNormalizedRenderer.php
+++ b/src/Renderer/JsonNormalizedRenderer.php
@@ -2,6 +2,7 @@
 
 namespace WPDesk\Forms\Renderer;
 
+use WPDesk\Forms\Field;
 use WPDesk\Forms\FieldProvider;
 use WPDesk\Forms\FieldRenderer;
 
@@ -20,7 +21,14 @@ class JsonNormalizedRenderer implements FieldRenderer {
 	 */
 	public function render_fields( FieldProvider $provider, array $fields_data, string $name_prefix = '' ): array {
 		$rendered_fields = [];
-		foreach ( $provider->get_fields() as $field ) {
+		$fields          = $provider->get_fields();
+		usort(
+			$fields,
+			static function ( Field $a, Field $b ) {
+				return $a->get_priority() <=> $b->get_priority();
+			}
+		);
+		foreach ( $fields as $field ) {
 			$rendered = [];
 			foreach ( $field->get_attributes() as $key => $attribute ) {
 				$rendered[ $key ] = $attribute;