cjson创建数组

用cjson  创建一个 数组的方法有两种。推荐第一种,第二种不能传递二维字符串数组,因为类型char ** 指向的是一个连续内存地址。类型不匹配会导致断错误。

方法1:
    cJSON *root;
    char *result;//生成的结果
    root = cJSON_CreateObject();
    cJSON *array = cJSON_CreateArray();
    cJSON *array = cJSON_CreateArray(); // 数组元素是object  
    char names[3][30]={ "zhang1", "zhagn2", "zhagng3" };
    strcpy(names[0],"zhang4");
    strcpy(names[1],"zhang5");
     strcpy(names[2],"zhang6");
    for (int i=0;i<3;i++)
   {
      printf("names[%d]=%s\n",i,names[i]);
   }
cJSON_AddItemToArray(array, cJSON_CreateString(names[0])); // cJSON_CreateString 创建一个字符串对象。
cJSON_AddItemToArray(array, cJSON_CreateString(names[1]));
cJSON_AddItemToArray(array, cJSON_CreateString(names[2]));
cJSON_AddItemToObject(root, "names", array);
result = cJSON_Print(root);      
 printf("生成JsonArray:\n%s\n", result);
cJSON_Delete(root);  

free(result);


// 这里注意释放内存


方法二:

前面略。
char *names[20] = { "zhang1", "zhagn2", "zhagng3" };  //names 是数组指针。
cJSON * array= cJSON_CreateStringArray(names,3);
cJSON_AddItemToObject(root, "names", array);

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值