//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;
}
结果: