纯C的json处理程序

//json解析

include <stdio.h>

include <stdlib.h>

include <string.h>

char str[300]= "{"ddh":"nx2024020911","dxxh":"er34615","kzdy":2.35,"fzdy":1.25,"czgh":123,"dxscrq":"240109"}";
int czgh;
float kzdy,fzdy;
char ddh[100];
char dxxh[100];
char dxscrq[100];
void parseJSON1(char* jsonData) {

char *token = strtok(jsonData, "{},\":");
while (token != NULL) {
	printf("%s\r\n",token);
    if (strcmp(token, "kzdy") == 0) {
        token = strtok(NULL, "{},\":");
        kzdy = atof(token);
    } else if (strcmp(token, "fzdy") == 0) {
        token = strtok(NULL, "{},\":");
        fzdy = atof(token);
    } 
    else if(strcmp(token, "ddh") == 0)
    {
    	token = strtok(NULL, "{},\":");
    	strcpy(ddh,token);
	}
 else if(strcmp(token, "dxxh") == 0)
    {
    	token = strtok(NULL, "{},\":");
    	strcpy(dxxh,token);
	}
else if(strcmp(token, "czgh") == 0)
    {
    	token = strtok(NULL, "{},\":");
    	czgh = atoi(token);
	}	
	else if(strcmp(token, "dxscrq") == 0)
    {
    	token = strtok(NULL, "{},\":");
    	strcpy(dxscrq,token);
	}	
	
    token = strtok(NULL, "{},\":");
}

}

int main()
{
char temp[200];
strcpy(temp,str);
parseJSON1(temp);

printf(" kzdy %0.2f\r\n",kzdy);
printf(" fzdy %0.2f\r\n",fzdy);
printf(" ddh %s\r\n",ddh);
printf(" dxxh %s\r\n",dxxh);
printf(" dxscrq %s\r\n",dxscrq);
printf(" czgh %d\r\n",czgh);

}
结果:
ddh
dxxh
kzdy
fzdy
czgh
dxscrq
kzdy 2.35
fzdy 1.25
ddh nx2024020911
dxxh er34615
dxscrq 240109
czgh 123
//json组成

include <stdio.h>

include <stdlib.h>

void generate_json(char *json, const char *ddh, const char *dxxh,const int czgh,const char *dxscrq,const float kzdy,const float fzdy) {
sprintf(json, "{"ddh":"%s", "dxxh":"%s", "czgh":"%d", "dxscrq":"%s", "kzdy":"%f", "fzdy":"%f"}", ddh,dxxh,czgh,dxscrq,kzdy,fzdy);
}

int main() {
char json[256];
char ddh[]="nx2409010801";char dxxh[]="er26500";int czgh=890;
char dxscrq[]="240101";
float kzdy=3.13;float fzdy=3.12;
generate_json(json, ddh,dxxh,czgh,dxscrq,kzdy,fzdy);
printf("%s\n", json);
return 0;
}
结果:{"ddh":"nx2409010801", "dxxh":"er26500", "czgh":"890", "dxscrq":"240101", "kzdy":"3.130000", "fzdy":"3.120000"}

posted @ 2025-03-16 20:24  AH-syqlg  阅读(19)  评论(0)    收藏  举报