#include "s2j.h" typedef struct { char TestString[10]; int TestInt; }Struct_test; cJSON *struct_to_json_Struct_test(void* struct_obj) { s2j_create_json_obj(json_obj_); Struct_test *struct_obj_ = (Struct_test *)struct_obj; s2j_json_set_basic_element(json_obj_, struct_obj_, string, TestString); s2j_json_set_basic_element(json_obj_, struct_obj_, int, TestInt); return json_obj_; } void *json_to_struct_Struct_test(cJSON* json_obj) { s2j_create_struct_obj(struct_obj_, Struct_test); s2j_struct_get_basic_element(struct_obj_,json_obj, string, TestString); s2j_struct_get_basic_element(struct_obj_,json_obj, int, TestInt); return struct_obj_; } int main(void) { static Struct_test _Struct_test = { .TestString = "OK", .TestInt = 123 }; cJSON *p1 = struct_to_json_Struct_test(&_Struct_test); if(p1 != NULL) { char *p2 = cJSON_Print(p1); if(p2 != NULL) { UartPrint("\nThe Json is:\n%s",p2); Struct_test *converted_obj = json_to_struct_Struct_test(p1); if (memcmp(&_Struct_test, converted_obj, sizeof(Struct_test))) { UartPrint("Converted failed!\n"); } else { UartPrint("Converted OK!\n"); UartPrint("converted_obj->TestString = %s\n", converted_obj->TestString); UartPrint("converted_obj->TestInt = %d\n", converted_obj->TestInt); } } } s2j_delete_struct_obj(converted_obj); s2j_delete_json_obj(p1); return 0; }