Json Parse the IPD response

I used the ESP01S with Arduino Uno, and input "AT+CIPSEND" and "GET https://api.thingspeak.com/channels/xxxxxx/fields/1.json?api_key=xxxxxxxxxx&results=2"
command in Serial Terminal to receive data from thingspeak.
I got the IPD response like this

19:16:44.474 -> busy s...
19:16:44.474 -> 
19:16:44.474 -> Recv 69 bytes
19:16:44.709 -> 
19:16:44.709 -> SEND OK
19:16:44.755 -> 
19:16:44.755 -> +IPD,324:{"channel":{"id":1376049,"name":"LED Control","latitude":"0.0","longitude":"0.0","field1":"led1","field2":"led2",
"field3":"led3","created_at":"2021-04-30T00:36:29Z","updated_at":"2021-04-30T00:37:05Z","last_entry_id":18},
"feeds":[{"created_at":"2021-06-07T11:13:39Z","entry_id":18,"field1":"0","field2":null,"field3":null}]}CLOSED

Now, I want to achieve IoT control from the Json String data. (Like when my board receive 1 from thingspeak, the relay turn on) I know I need to do Json Parsing but I have no idea how to do json parse the IPD response in C code. Appreciating your help.

This project has a json parsing example with two possible parsers.
Arduino to Arduino via Serial
Check the bottom of that page

@lukelouyu1029, your topic has been moved to a more suitable location on the forum.

Thank for your answer. Another question. How can I fetch or extract the data from +IPD response in the serial terminal so that I can use the extracted data to control my relay?

If you mean 'how to extract data from json string' then check the code examples in Arduino to Arduino via Serial
If not what are you trying to do?

Sorry for my incomprehensible reply. Initially, I would like to Json Parse the IPD response after giving Arduino "AT+CIPSEND" command since the original IPD response was in JSON format. After Json Parsing, I can get the last entry of the Thingspeak Channel. Now, I figure out the new way of getting the value from Thingspeak's last entry. I get the IPD response like "+IPD,1:1" in the serial terminal. I want to extract the data "1" from the serial terminal and use the data "1" to make my relay in "ON" state. Thanks for your help.

Which 1 are you looking for? I assume the last 1.
There are a number of ways to do that.
Assuming "+IPD,1:1" is in an Arduino String

const int relayPin = 13;

void setRelay(String &data) {
  Serial.println(data); //  => +IPD,1:1
  int idx = data.indexOf(':');
  if (idx < 0) {
    Serial.println(F("data error"));    
  } else {
    int relayState = (data[idx+1] == '1'?HIGH:LOW);
    Serial.print(F("relayState:"));Serial.println(relayState);
    digitalWrite(relayPin,relayState); 
  }
}

void setup() {
   // put your setup code here, to run once:
  Serial.begin(9600);
  for (int i = 10; i > 0; i--) {
    Serial.print(' '); Serial.print(i);
    delay(500);
  }
  Serial.println();
  String data;
  data = "+IPD,1:1";
  setRelay(data);
  data = "+IPD,1:0";
  setRelay(data);
  data = "+IPD,1:"; // missing data relay OFF
  setRelay(data);
  data = "+IPD,1"; // missing data relay state unchange
  setRelay(data);
}
void loop() {
}

On the other hand is your data is in a char[ ] , a c-string pointed to by a char * then you can just wrap it in a SafeString and use the same/similar code.

// download SafeString V4.1.5+ library from the Arduino Library manager or from
// https://www.forward.com.au/pfod/ArduinoProgramming/SafeString/index.html
#include "SafeString.h"

const int relayPin = 13;

void setRelay(SafeString &data) {
  Serial.println(data); //  => +IPD,1:1
  int idx = data.indexOf(':');
  if (idx < 0) {
    Serial.println(F("data error"));    
  } else {
    int relayState = (data[idx+1] == '1'?HIGH:LOW);
    Serial.print(F("relayState:"));Serial.println(relayState);
    digitalWrite(relayPin,relayState); 
  }
}

void setup() {
   // put your setup code here, to run once:
  Serial.begin(9600);
  for (int i = 10; i > 0; i--) {
    Serial.print(' '); Serial.print(i);
    delay(500);
  }
  Serial.println();
  char datastr[] = "+IPD,1:1";
  char *data = datastr;
  createSafeStringFromCharPtr(sfData,data); // or cSFP( .. ) for short wrap char* in SafeString
  setRelay(sfData);
}
void loop() {
}

OR you can use c-string methods on the char* to extract the data.