From 895b22378d310c4affb782267ae1cbb3bc725c36 Mon Sep 17 00:00:00 2001 From: Per Larsson Date: Mon, 27 Sep 2021 11:17:18 +0200 Subject: Compact binary to JSON (#12) CompactBinary: Support for converting CbObject to JSON --- zenhttp/httpserver.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'zenhttp/httpserver.cpp') diff --git a/zenhttp/httpserver.cpp b/zenhttp/httpserver.cpp index d999f7f60..795e81ea8 100644 --- a/zenhttp/httpserver.cpp +++ b/zenhttp/httpserver.cpp @@ -319,9 +319,17 @@ HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, CbPackage Data) void HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, CbObject Data) { - SharedBuffer Buf = Data.GetBuffer(); - std::array Buffers{IoBufferBuilder::MakeCloneFromMemory(Buf.GetData(), Buf.GetSize())}; - return WriteResponse(ResponseCode, HttpContentType::kCbObject, Buffers); + if (m_AcceptType == HttpContentType::kJSON) + { + ExtendableStringBuilder<1024> Sb; + WriteResponse(ResponseCode, HttpContentType::kJSON, Data.ToJson(Sb).ToView()); + } + else + { + SharedBuffer Buf = Data.GetBuffer(); + std::array Buffers{IoBufferBuilder::MakeCloneFromMemory(Buf.GetData(), Buf.GetSize())}; + return WriteResponse(ResponseCode, HttpContentType::kCbObject, Buffers); + } } void -- cgit v1.2.3