Сохранить (MFC) в JSON?

Я должен получать данные с сервера. Приложение сервера написано в VS2008 (MFC). Есть только один способ отправить эти данные с сервера -> как объект CArchive. Я не могу изменить источник на сервере.

Я хочу получить эти данные в PHP (по tcp) и преобразовать их в JSON. Есть ли какой-нибудь умный способ конвертировать CArchive в JSON?

0

Решение

CArchive не имеет предопределенного формата, который вы можете анализировать. Это просто двоичный файл, который зависит от приложения. Вы должны знать, что в нем, чтобы знать, как это читать. Библиотека может облегчить чтение некоторых типов данных (CString, CArrayи т. д.), но я не уверен, что вы найдете что-то подобное.

В следующем примере показано, как CArchive Работы (запоминающая часть):

CArchive ar;
int i = 500;
float f = 10.4f;
CString str(_T("string"));
ar << i << f << str;

Так что вам придется читать двоичные данные и как-то их интерпретировать. Это легко в C ++ так как MFC фреймворки точно знают, как сериализовать типы, включая сложные типы, такие как CString а также CArray, Но вам придется сделать это самостоятельно, используя PHP.

Например, вы можете прочитать 4 байта с указанным смещением и интерпретировать его как int, Следующие четыре байта для float, И тогда вы должны увидеть, как загрузить CStringОн сначала сохраняет длину, а затем данные, но вам нужно взглянуть на точный формат, который он использует.

Нет готового к использованию / использования CArchive -> JSON конвертер. Я бы посоветовал вам изменить код вашего сервера, чтобы он CArchive а также JSON данные.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]