diff options
| author | Per Larsson <[email protected]> | 2021-09-27 11:17:18 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-09-27 11:17:18 +0200 |
| commit | 895b22378d310c4affb782267ae1cbb3bc725c36 (patch) | |
| tree | 05d345570fc184bd045329f8d2ea54b68c5d5bac /zenhttp/httpserver.cpp | |
| parent | Ported CbValue from Unreal to Zen (#10) (diff) | |
| download | zen-895b22378d310c4affb782267ae1cbb3bc725c36.tar.xz zen-895b22378d310c4affb782267ae1cbb3bc725c36.zip | |
Compact binary to JSON (#12)
CompactBinary: Support for converting CbObject to JSON
Diffstat (limited to 'zenhttp/httpserver.cpp')
| -rw-r--r-- | zenhttp/httpserver.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
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<IoBuffer, 1> 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<IoBuffer, 1> Buffers{IoBufferBuilder::MakeCloneFromMemory(Buf.GetData(), Buf.GetSize())}; + return WriteResponse(ResponseCode, HttpContentType::kCbObject, Buffers); + } } void |