纯C的json处理程序

news/2025/3/16 20:25:20/文章来源:https://www.cnblogs.com/AH-syqlg/p/18775432

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/899963.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

允许蜘蛛访问,屏蔽访客的php代码

大部分时候我们制作的泛目录需要屏蔽访客,php的优于js识别蜘蛛屏蔽,毕竟一个在服务器内运行后输出,一个在html中调用。 这里分享一段屏蔽游客查查看真实页面的php代码,直接命名为啥php文件,后在想要屏蔽游客的页面中引用(如:include /baidu.php;)就可以了,代码如下:&…

【程设の旅】第二次上机卡题复盘

python上机 其实很快就写完了,第五题有个坑,讲一下 05:奇偶ASCII值判断 描述 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO 例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输出NO 输入 输入一个字符 输出 如果其ASCII值为奇数…

第二章课后习题

Tempconvent.py TempStr = input("请输入带有符号的温度值:") if TempStr[-1] in[F,f]: C = (eval(TempStr[0:-1])-32)/1.8 print("转换后的温度是{:.0f}C".format(C)) elif TempStr[-1] in[C,c]: F = 1.8*eval(TempStr[0:-1])+32 print("转换后的温…

30_正则练习题2

正则练习题正则含义1.1 基础正则 ^ 以什么开头,"^yuchao" 表示匹配以yuchao单词开头的行 $ 以什么结尾,"yuchao$",表示匹配以yuchao单词结尾的行 ^$ 组合符号,表示空行。逻辑解释就是以^开始,以$结尾的行 . 匹配任意且只有一个…

docker-compose 安装elasticsearch

安装版本 elasticsearch 8.14.1 拉取镜像 docker pull elasticsearch:8.14.1如需安装kibana 需要拉取对应版本的kibana镜像 docker pull kibana:8.14.1查看镜像是否安装成功 docker images配置docker-compose.yaml version: 3 services:es:# 镜像名称image: elasticsearch:8.14…

求阶乘

关于最少尾数0的个数,只有2的倍数与5的倍数相乘才能得到0,显然2的倍数比5的倍数多的多,现在目标找5的倍数的个数#include<bits/stdc++.h> #define endl "\n" #define int long long #define x first #define y second using namespace std; typedef long lo…

Visual Studio Code-设置展示多行TAB页

Visual Studio Code-设置展示多行TAB页 一、ctrl + shift + p -> 打开工作区设置(Open Workspace Settings 二、输入 ‘workbench.editor.wrapTabs’

Git-git生成SSH密钥

Git-git生成SSH密钥 一、生成 SSH 密钥 如果你还没有生成 SSH 密钥,可以使用以下命令生成新的 SSH 密钥对: 这里 -t rsa 指定密钥类型为 RSA,-b 4096 指定密钥长度为 4096 位,-C 添加一个注释,通常是你的电子邮件地址。 ssh-keygen -t rsa -b 4096 -C "your_email@ex…

鲜花:《一种基于错误的寻找重心方法的点分治的复杂度分析》注

原文:一种基于错误的寻找重心方法的点分治的复杂度分析 LCA 还是太神了,研究半天才看明白。 所以这里提供一种说人话版本。 为什么法一是错的? 原文提出了这样一个 hack:这是三个等长度的共端点的链,初始以红色箭头所指的点为根。 进行第一次分治:红色箭头所指的点是重心…

SpringBoot的WebServlet的兼容

一.使用SpringBean注册JavaWeb的三大组件 在 Spring Boot 中,使用 @Bean 注册的 Servlet、Filter 和 Listener 组件会被加载到 Servlet 容器 中管理,而不是直接由 Spring 容器管理。然而,Spring Boot 提供了一些机制来确保这些组件能够与 Spring 容器无缝集成。Servlet 容器…