C语言将字符串转json
示例代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *strrpc(char *str,char *oldstr,char *newstr){
/*
将一个字符串中的某些字符进行替换
str 需要替换的字符串
oldstr 旧的字符串
newstr 新的字符串
*/
char bstr[strlen(str)];//转换缓冲区
memset(bstr,0,sizeof(bstr));
for(int i = 0;i < strlen(str);i++){
if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串
strcat(bstr,newstr);
i += strlen(oldstr) - 1;
}else{
strncat(bstr,str + i,1);//保存一字节进缓冲区
}
}
strcpy(str,bstr);
return str;
}
char *split(char * src,char * str){
/*
传入一个数组进行p和一个以什么进行分割的str,返回切片后的值
*/
int i = 0, j = 0;
char tmp[128][128] = {0};
char *p1 = (char *)malloc(1024);
char joint_result[300];
while((p1 = (char *)strchr(src, *str)) != NULL) //必须使用(char *)进行强制类型转换
{
strncpy(tmp[i], src, strlen(src) - strlen(p1));
src = p1 + 1;
i ++;
}
strncpy(tmp[i], src, strlen(src));
//对分割后的结果再次进行拼接
for(j = 0; j <= i-1; j++){ //i-1因为不需要最后一个字段
if (j == 0){
sprintf(joint_result,"%s%s%s","{\"",tmp[j],"\",");
}else if (j != (i-1)){
sprintf(joint_result,"%s%s%s%s",joint_result,"\"",tmp[j],"\",");
}else{
sprintf(joint_result,"%s%s%s%s",joint_result,"\"",tmp[j],"\"}");
}
}
return strrpc(joint_result,"=","\":\"");//调用strrpc将字符串中的【=】替换为【":"】并return最终结果
}
int main (void){
char p[] = "name=laowang&id=001&money=1888.00&birthday=201808088888";
char str[] = "&"; //分割的字符串
char * result;
result = split(p,str);
printf("%s",result); //输出最终结果
return 0;
}
dev-c++中执行结果:
{"name":"laowang","id":"001","money":"1888.00"}
C语言将字符串转json的更多相关文章
- Json字符串和Json对象的简单总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). ...
- JavaScript操作JSON的方法总结,JSON字符串转换为JSON对象
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...
- GO语言练习:构建json 和 解析JSON 实例
本文介绍如何使用Go语言自带的库把对象转换为JSON格式,并在channel中进行传输后,并把JSON格式的信息转换回对象. 1.Go语言的JSON 库 Go语言自带的JSON转换库为 encodin ...
- JavaScript中,JSON格式的字符串与JSON格式的对象相互转化
前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法 ...
- [日常] Go语言圣经--结构体,JSON习题
Go语言圣经-结构体 1.结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体 2.通常一行对应一个结构体成员,成员的名字在前类型在后,不过如果相邻的成员类型如果相同的话可以被合并到一行 ...
- json字符串和Json对象,以及json的基本了解
考虑到python等语言中没有更好表示json对象的方法,所以使用JavaScript来介绍json 首先是json字符串: var str1 = '{ "name": " ...
- go语言之进阶篇JSON处理
一.JSON处理 JSON (JavaScript Object Notation)是一种比XML更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成.尽管JSON是JavaScr ...
- json字符串转为json对象-jQuery.parseJSON()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Python web前端 08 字符串 数组 json
Python web前端 08 字符串 数组 json 一.string #string 字符串 #索引 下标 偏移量 ---从0开始 str[index]; #通过索引取字符串 可读不可写 str. ...
随机推荐
- 算法 - 链的操作(三) - 返回倒数第k个节点(no.23)
输入一个链 : 1 -> 3 -> 5 -> 6 -> 8 输入 k = 2 返回 6 这个节点 python(2.7) def getNode(head, k): if(h ...
- F - Change FZU - 2277 (DFS序+线段树)
题目链接: F - Change FZU - 2277 题目大意: 题意: 给定一棵根为1, n个结点的树. 有q个操作,有两种不同的操作 (1) 1 v k x : a[v] += x, a[v ' ...
- 1.2MyBatis介绍
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上 ...
- MySQL绿色版安装整套流程
https://www.cnblogs.com/LiuChunfu/p/6426918.html
- log4j - 使用教程说明
地址:http://www.codeceo.com/log4j-usage.html 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在a ...
- 20165231 预习作业3 linux安装及学习
linux安装 由于以前稍微关注过虚拟机相关知识,所以大致知道虚拟机软件的相关知识.目前我已知的普遍使用的虚拟机软件是VMware Workstation(下文简称VM),VirtualBox(下文简 ...
- np.nonzero()函数用法
返回数组中不为0的元素的下标. 数组中元素可为布尔.整型和浮点型,返回值为元祖 一.一维数组 1.数组元素为布尔类型 a=np.array([True,False,True,False]) b=np. ...
- Linux中Grep常用的15个例子【转】
转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm 摘要:Grep命令主要用于从文件 ...
- MySQL log_slave_updates 参数【转】
说明:最近部署了mysql的集群环境,详细如下M01和M02为主主复制,M01和R01为主从复制:在测试的过程中发现了以下问题: 1.M01和M02的主主复制是没有问题的(从M01写入数据能同步到M0 ...
- asyncio之asyncio.run
asyncio.run(coro, *, debug=False) python3.7加入,只能作为asyncio的入口函数.