diff --git a/.gitmodules b/.gitmodules
index 10aee941292cb1d425327427502af7f733cd0eaf..ac4194a74748e57794045a1a0d1fa062e527361e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -79,3 +79,6 @@
 [submodule "modules/shader_compiler/lib/murmur3"]
 	path = modules/shader_compiler/lib/murmur3
 	url = https://github.com/PeterScott/murmur3.git
+[submodule "modules/shader_compiler/lib/json-c"]
+	path = modules/shader_compiler/lib/json-c
+	url = https://github.com/json-c/json-c.git
diff --git a/modules/shader_compiler/CMakeLists.txt b/modules/shader_compiler/CMakeLists.txt
index 960eb65cb17121087c2f5b32b2a6abeecd7ff2a5..a00a896d500647b7ed38768f26235d36c8df6d29 100644
--- a/modules/shader_compiler/CMakeLists.txt
+++ b/modules/shader_compiler/CMakeLists.txt
@@ -42,7 +42,8 @@ set_target_properties(vkcv_shader_compiler PROPERTIES PUBLIC_HEADER "${vkcv_shad
 set(vkcv_shader_compiler_lib lib)
 set(vkcv_shader_compiler_lib_path ${PROJECT_SOURCE_DIR}/${vkcv_shader_compiler_lib})
 
-# Load SPIRV-Headers
+# Load JSON-C and SPIRV-Headers
+include(config/JSON-C.cmake)
 include(config/SPIRV-Headers.cmake)
 
 # Check and load GLSLANG
diff --git a/modules/shader_compiler/config/JSON-C.cmake b/modules/shader_compiler/config/JSON-C.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..498b933cafb5d8bd84faed49cf51e6eef9c7503b
--- /dev/null
+++ b/modules/shader_compiler/config/JSON-C.cmake
@@ -0,0 +1,9 @@
+
+use_git_submodule("${vkcv_shader_compiler_lib_path}/json-c" json_c_status)
+
+if (${json_c_status})
+	add_subdirectory(${vkcv_shader_compiler_lib}/json-c)
+	
+	list(APPEND vkcv_shader_compiler_libraries json-c)
+	list(APPEND vkcv_shader_compiler_includes ${vkcv_shader_compiler_lib})
+endif ()
diff --git a/modules/shader_compiler/config/Shady.cmake b/modules/shader_compiler/config/Shady.cmake
index 88e1f7b32de08c233901111fa89b371e86d1f0de..b5d3bf6ca2a04209806b571da740efd9ca5e0cdc 100644
--- a/modules/shader_compiler/config/Shady.cmake
+++ b/modules/shader_compiler/config/Shady.cmake
@@ -2,6 +2,7 @@
 use_git_submodule("${vkcv_shader_compiler_lib_path}/shady" shady_status)
 
 if (${shady_status})
+	set(EXTERNAL_JSON_C ON CACHE INTERNAL "")
     set(EXTERNAL_SPIRV_HEADERS ON CACHE INTERNAL "")
     set(EXTERNAL_MURMUR3 ON CACHE INTERNAL "")
 
diff --git a/modules/shader_compiler/lib/json-c b/modules/shader_compiler/lib/json-c
new file mode 160000
index 0000000000000000000000000000000000000000..dabed80523fa5101e30f0ee57ba06b02beae73eb
--- /dev/null
+++ b/modules/shader_compiler/lib/json-c
@@ -0,0 +1 @@
+Subproject commit dabed80523fa5101e30f0ee57ba06b02beae73eb
diff --git a/modules/shader_compiler/lib/shady b/modules/shader_compiler/lib/shady
index 0a92cf7ff4081d21db0724a8e66ab868b878df7d..defbe9e83bc4d3a5f1a5ecf5ec10db449442761a 160000
--- a/modules/shader_compiler/lib/shady
+++ b/modules/shader_compiler/lib/shady
@@ -1 +1 @@
-Subproject commit 0a92cf7ff4081d21db0724a8e66ab868b878df7d
+Subproject commit defbe9e83bc4d3a5f1a5ecf5ec10db449442761a