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; } |