在使用C語言進行JSON串轉換時,可以用CJSON庫快速地將JSON對象轉換為C語言對象。對于轉換后的C語言對象,如果需要對其進行進一步的操作和處理,可以將其轉換為實體類對象。下面是實現CJSON轉換為實體類對象的示例代碼:
#include#include #include "cJSON.h" // 存放JSON對象的結構體 typedef struct { int id; char name[128]; } Person; // 將JSON對象轉換為Person結構體對象 Person *jsonToPerson(cJSON *json) { Person *person = malloc(sizeof(Person)); person->id = cJSON_GetObjectItem(json, "id")->valueint; strcpy(person->name, cJSON_GetObjectItem(json, "name")->valuestring); return person; } int main() { // JSON串 char *jsonStr = "{ \"id\": 1, \"name\": \"Tom\" }"; // 從JSON串解析出JSON對象 cJSON *json = cJSON_Parse(jsonStr); // 將JSON對象轉換為Person結構體對象 Person *person = jsonToPerson(json); // 打印Person結構體對象的屬性值 printf("Person[id=%d, name=%s]\n", person->id, person->name); // 釋放內存 cJSON_Delete(json); free(person); return 0; }
在這段示例代碼中,首先定義了一個Person結構體用于存放JSON轉換后的C語言對象,其具有id和name兩個屬性。然后定義一個函數jsonToPerson,其輸入參數為cJSON指針類型的json對象,返回值為Person指針類型的person對象。在函數內部,根據json對象對person對象的各個屬性進行讀取和賦值,最后返回person對象。在主函數中,先將JSON串解析為json對象,再調用jsonToPerson函數將json對象轉換為Person對象,并輸出Person對象的屬性值。最后釋放內存,程序結束。