Пробовал использовать ту же библиотеку, похоже есть ошибка с парсингом массивов. Поэтому я использовал https://www.mql5.com/en/code/11134. У него есть недостаток: к сожалению, нужно удалить все объекты; в результате кода много. Но, по крайней мере, это работает.
Кажется, ваш json имеет неправильный формат, я его немного обрезал.
#include <json1.mqh> //modified version, https://www.mql5.com/en/forum/28928/page5#comment_15766620
//const string post_result=
//{"ok":true,"result":[
//{"update_id":568022212,"channel_post":{"message_id":436,"chat":{"id":-1001436032340,"title":"FORTUNA","type":"channel"},
//"date":1588899840,"reply_to_message":{"message_id":372,"chat":{"id":-1001436032340,"title":"FORTUNA","type":"channel"},
//"date":1588838583,"text":"A\nGbpusd buy now 1.2360\nSl 1.2280 \nTp open\n","entities":[{"offset":52,"length":11,"type":"mention"}]},"text":"A\n42 pips bookd close\ud83d\udfe2\ud83d\udfe2"}},
//{"update_id":568022213,"channel_post":{"message_id":437,"chat":{"id":-1001436032340,"title":"FORTUNA","type":"channel"},
//"date":1588900321,"reply_to_message":{"message_id":435,"chat":{"id":-1001436032340,"title":"FORTUNA","type":"channel"},
//"date":1588893671,"text":"A\nGold buy 1713.3\nSl 1702 \nTp open\nSwing trade"},"text":"Amazon\n60 pips bookd close\ud83d\udfe2\ud83d\udfe2" }}]}
//;
void function()
{
//---
const string post_result=getContent();//ok, you managed to get some string here
JSONParser *parser=new JSONParser();
JSONValue *value=parser.parse(post_result);
delete(parser);
if(CheckPointer(value)==POINTER_INVALID)
{
printf("%i %s: error!",__LINE__,__FILE__);
delete(value);
return;
}
JSONObject *obj=(JSONObject*)value;
const bool isSuccess=obj.getBool("ok");
printf("%i %s: isSuccess=%d",__LINE__,__FILE__,isSuccess);
if(!isSuccess)return;
JSONValue *resultValue=obj.getValue("result");
if(CheckPointer(resultValue)!=POINTER_INVALID)
{
JSONArray *resultValueArray=resultValue;
for(int i=0;i<resultValueArray.size();i++)
{
printf("%i %s: #%d=%s",__LINE__,__FILE__,i,resultValueArray.getObject(i).toString());
//you can work with JSONObject or with string, whatever is more convenient
parseResultLine(resultValueArray.getObject(i));
}
delete(resultValueArray);
}
delete(resultValue);
delete(obj);
}
bool parseResultLine(JSONObject *object)
{
const long update_id=object.getLong("update_id");
JSONObject *channel_post=object.getObject("channel_post");
const long message_id=channel_post.getLong("message_id");
const datetime date=(datetime)channel_post.getInt("date");
const string text=channel_post.getString("text");
printf("%i %s: id=%s, dt=%d/%s, text=%s",__LINE__,__FILE__,IntegerToString(message_id),(int)date,TimeToString(date),text);
JSONObject *chat=channel_post.getObject("chat");
const long chat_id=chat.getLong("id");
const string chat_title=chat.getString("title");
printf("%i %s: chat-> id=%I64d title=%s type=%s",__LINE__,__FILE__,chat_id,chat_title,chat.getString("type"));
JSONObject *reply=channel_post.getObject("reply_to_message");
printf("%i %s: replied: id=%s, date=%s",__LINE__,__FILE__,string(reply.getLong("message_id")),TimeToString(reply.getInt("date")));
return true;
}