77 for (
auto& [key, value] : json.items())
83 ImGui::Text(key.c_str());
88 else if (value.is_boolean())
90 ImGui::Checkbox(key.c_str(), value.get<
bool*>());
92 else if (value.is_number_integer())
94 auto data = value.get<
int>();
95 if (ImGui::InputInt(key.c_str(), &data))
100 else if (value.is_number_float())
102 ImGui::InputDouble(key.c_str(), value.get<
double*>(), 0.1f, 1.0f,
"%.1f");
104 else if (value.is_string())
106 ImGui::InputText(key.c_str(), value.get<std::string*>(), ImGuiInputTextFlags_EnterReturnsTrue);
108 else if (value.is_object())
112 ImGui::Text(key.c_str());
131 unsigned int counter = 0;
133 for (
auto& elem : json)
135 name = std::format(
"[{0}]", counter);
140 else if (elem.is_boolean())
142 ImGui::Checkbox(name.c_str(), elem.get<
bool*>());
146 else if (elem.is_number_integer())
148 ImGui::InputScalar(name.c_str(), ImGuiDataType_S64,
reinterpret_cast<void*
>(elem.get<std::int64_t*>()));
151 else if (elem.is_number_unsigned())
153 ImGui::InputScalar(name.c_str(), ImGuiDataType_U64,
reinterpret_cast<void*
>(elem.get<std::uint64_t*>()));
156 else if (elem.is_number_float())
158 ImGui::InputDouble(name.c_str(), elem.get<
double*>(), 0.1f, 1.0f,
"%.1f");
161 else if (elem.is_string())
163 ImGui::InputText(name.c_str(), elem.get<std::string*>(), ImGuiInputTextFlags_EnterReturnsTrue);
166 else if (elem.is_object())