最近在处理VOD网络应用的时候,碰到一个按id排序显示的需求,跟大家分享下,此代码片段通过VS2008调试完成。
1、JSON str排序前后打印。
2、基本的处理思路如下。
(1)构建一个json input str;
(2)申请结构体资源,解析并存储;
(3)针对此结构体数据做排序;
(4)用排序后的结构体数据填充,并构造新的json output str;
(5)释放结构体资源。
3、附上代码片段。
// cJSON_learning.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "cJSON.h"
#define cJSON_LOG printf
//#define cJSON_DEBUG printf
#define cJSON_DEBUG(...) do{}while(0)
typedef struct
{
char *id;
char *name;
}STRUCT_CHANNEL_DATA;
static STRUCT_CHANNEL_DATA *channel_data = {0};
static int g_channel_num;//全局变量,保存channel的总个数
void release_struct_channel_data(void)
{
int i = 0;
cJSON_DEBUG("\n[%s]before release:g_channel_num:%u\n",__FUNCTION__,g_channel_num);
if(g_channel_num > 0)
{
for(i=0;i < g_channel_num;i++)
{
if(channel_data[i].id != NULL)
{
free(ch