File indexing completed on 2024-05-05 04:42:47

0001 /*
0002     SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #include "jsonp_p.h"
0007 
0008 #include <QByteArray>
0009 
0010 using namespace KPublicTransport;
0011 
0012 QByteArray JsonP::decode(const QByteArray &data)
0013 {
0014     const auto firstBrace = data.indexOf('{');
0015     const auto firstBracket = data.indexOf('[');
0016 
0017     if (firstBrace == 0 || firstBracket == 0 || (firstBrace < 0 && firstBracket < 0)) {
0018         return data;
0019     }
0020 
0021     if (firstBrace > 0 && (firstBrace < firstBracket || firstBracket < 0)) {
0022         const auto lastBrace = data.lastIndexOf('}');
0023         return lastBrace > firstBrace ? data.mid(firstBrace, lastBrace - firstBrace + 1) : data;
0024     }
0025 
0026     if (firstBracket > 0 && (firstBracket < firstBrace || firstBrace < 0)) {
0027         const auto lastBracket = data.lastIndexOf(']');
0028         return lastBracket > firstBracket ? data.mid(firstBracket, lastBracket - firstBracket +1) : data;
0029     }
0030 
0031     return data;
0032 }