diff --git a/modules/juce_midi_ci/ci/juce_CIParser.cpp b/modules/juce_midi_ci/ci/juce_CIParser.cpp index d9484fa112..1b7178305a 100644 --- a/modules/juce_midi_ci/ci/juce_CIParser.cpp +++ b/modules/juce_midi_ci/ci/juce_CIParser.cpp @@ -162,7 +162,29 @@ private: { const auto opts = ToVarOptions{}.withExplicitVersion ((int) msg->header.version) .withVersionIncluded (false); - const auto json = ToVar::convert (body, opts); + auto json = ToVar::convert (body, opts); + + if (auto* obj = json->getDynamicObject(); obj != nullptr && obj->hasProperty ("header")) + { + const auto header = obj->getProperty ("header"); + const auto bytes = [&]() -> std::vector + { + const auto* arr = header.getArray(); + + if (arr == nullptr) + return {}; + + std::vector vec; + vec.reserve ((size_t) arr->size()); + + for (const auto& i : *arr) + vec.push_back ((std::byte) (int) i); + + return vec; + }(); + + obj->setProperty ("header", Encodings::jsonFrom7BitText (bytes)); + } if (json.has_value()) *result = String (getDescription (body)) + ": " + JSON::toString (*json, JSON::FormatOptions{}.withSpacing (JSON::Spacing::none));