纯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"}
                    
                
                
            
        
浙公网安备 33010602011771号