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