diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index 5db05938ccc248e90c8532b0dd1ab1d1d02a116e..006157536e884d8f2065b3dd26e638be3df48fc6 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -1,4 +1,5 @@
 add_subdirectory(KWSys)
+add_subdirectory(NLohmannJson)
 
 if(BUILD_TESTING)
   add_subdirectory(GTest)
diff --git a/thirdparty/NLohmannJson/CMakeLists.txt b/thirdparty/NLohmannJson/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7aaef186fef9b708ed4c3ed97fbb11e38253a0a6
--- /dev/null
+++ b/thirdparty/NLohmannJson/CMakeLists.txt
@@ -0,0 +1,4 @@
+add_library(NLohmannJson INTERFACE)
+target_include_directories(NLohmannJson
+  INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/json/src
+)
diff --git a/thirdparty/NLohmannJson/Readme.txt b/thirdparty/NLohmannJson/Readme.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d4264273bbc5566dfef4f92fba766ff248ff905c
--- /dev/null
+++ b/thirdparty/NLohmannJson/Readme.txt
@@ -0,0 +1,4 @@
+This is a copy of the upstream JSON For Modern C++ library located at
+https://github.com/nlohmann/json. Do not make changes directly to this repo
+but instead to the upstream repository.  Update this copy of json.hpp by running
+the update.sh script.
diff --git a/thirdparty/NLohmannJson/json/empty b/thirdparty/NLohmannJson/json/empty
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/thirdparty/NLohmannJson/update.sh b/thirdparty/NLohmannJson/update.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0fa3ffca3aface5d12c33e371d06a0375e3dbd67
--- /dev/null
+++ b/thirdparty/NLohmannJson/update.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+set -e
+set -x
+shopt -s dotglob
+
+readonly name="NLohmannJson"
+readonly ownership="JSON For Modern C++ Upstream <robot@adios2>"
+readonly subtree="thirdparty/NLohmannJson/json"
+readonly repo="https://github.com/nlohmann/json.git"
+readonly tag="v2.1.1"
+readonly shortlog="true"
+readonly paths="
+LICENSE.MIT
+src/json.hpp
+"
+
+extract_source () {
+    git_archive
+}
+
+. "${BASH_SOURCE%/*}/../update-common.sh"