京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

linux c 使用 cJson库生成带有数组的json串

2018-11-26 09:40| 发布者: zhaojun917| 查看: 478| 评论: 0|原作者: 梦想之都-俊月星空

摘要: char *json_str = NULL; cJSON * pJson = NULL; cJSON * pJsonArray =NULL; cJSON * pJsonArrayitem =NULL; pJson = cJSON_CreateObject();if(NULL == pJson){ sprintf(g_ErrorMsg, "pJson_cJSON_CreateObject() 构 ...

 char *json_str = NULL;
 
   cJSON * pJson = NULL;
   cJSON * pJsonArray =NULL;
   cJSON * pJsonArrayitem =NULL;

   pJson = cJSON_CreateObject();
  if(NULL == pJson)
  {
        sprintf(g_ErrorMsg, "pJson_cJSON_CreateObject() 构建根结点错误");
        logger(g_ErrorMsg);
 
      return E_FAIL;
  }
 
  cJSON_AddItemToObject(pJson, "cost_price", cJSON_CreateNumber(total_money*100));
  cJSON_AddItemToObject(pJson, "goods_detail",pJsonArray=cJSON_CreateArray());
 
 do
  {
        ret = inq_t_gd_orderitem_voucher_msg_byorder(DBS_FETCH,&gd_orderitem,&gd_voucher_merch,order_no,discount_str,&total);
    
    if(ret ==GD_DB_NOTFOUND)
    {
 
      break;
    }
    else if(ret != E_OK)
    {
            inq_t_gd_orderitem_voucher_msg_byorder(DBS_CLOSE,&gd_orderitem,&gd_voucher_merch,order_no,discount_str,&total);
       sprintf(g_ErrorMsg,"inq_t_gd_orderitem_voucher_msg_byorder根据订单号[%s]查询商品明细取游标出错[%d]",order_no,ret);
        logger(g_ErrorMsg);
    
        strcpy(errcode,"0001");
       //GD_puterr(busi_notmp, errcode,errmsg);
       sprintf(errmsg,"根据订单号查询优惠标志取游标出错[%d]",ret);
        return E_FAIL; 
    }
     sprintf(g_ErrorMsg,"GD_get_good_detail_json[%s][%s][%d][%.2f]",gd_orderitem.merch_id ,gd_orderitem.merch_name,gd_orderitem.merch_num,gd_orderitem.dicount_fee);
        logger(g_ErrorMsg);
    cJSON_AddItemToArray(pJsonArray,pJsonArrayitem = cJSON_CreateObject());
    cJSON_AddStringToObject(pJsonArrayitem, "goods_id", gd_orderitem.merch_id);
    cJSON_AddStringToObject(pJsonArrayitem, "goods_name", gd_orderitem.merch_name);
    cJSON_AddNumberToObject(pJsonArrayitem, "quantity", gd_orderitem.merch_num);
    cJSON_AddNumberToObject(pJsonArrayitem, "price", gd_orderitem.dicount_fee*100);
    }while(1==1);
 
    ret = inq_t_gd_orderitem_voucher_msg_byorder(DBS_CLOSE,&gd_orderitem,&gd_voucher_merch,order_no,discount_str,&total);
   if(ret != E_OK)
   {
       sprintf(g_ErrorMsg,"inq_t_gd_orderitem_voucher_msg_byorder根据订单号[%s]查询商品明细关闭游标出错[%d]",order_no,ret);
        logger(g_ErrorMsg);
    
        strcpy(errcode,"0001");
       //GD_puterr(busi_notmp, errcode,errmsg);
       sprintf(errmsg,"根据订单号查询优惠标志关闭游标出错[%d]",ret);
        return E_FAIL;
  }
  
  json_str = cJSON_PrintUnformatted(pJson);

    strcpy(o_good_detailjson,json_str);
   
    if(pJson!=NULL)
    {
      cJSON_Delete(pJson);
      pJson = NULL;
   }

   if(json_str!= NULL)
   {
      free(json_str);
      json_str=NULL;
   }

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-2 14:08 , Processed in 0.037980 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部