破逼Json,该死的Json库,操了
结果,我现在用这破逼库,本来打算再深层次封装一下,把Json封装成结构体类似的访问方式,比如
json_t Json_getJsonArrayWithIndex( json_t *jroot , char * cstrKey , int index );
根据索引获取Json内部数组内第index个object元素
我内部首先根据Key从root获取数组,然后,在数组内部根据index获取object元素。
但是,操了,我把数组释放了之后,我获取到的object也被释放了,谁规定的爹死了儿子必须跟着一起死。操了,这是什么逻辑。
然后就好办了,这次,爹死了一次,下次再想找爹也找不到了。以后再次用Key获取root永远失败。
操了,这么简单的字符串操作,怎么到这里就这么麻烦了。不就是来回判断几个大括号,中括号,然后做字符串匹配么。
操了,我就不明白,这帮B是为了显示自己对操作系统的深刻理解还是显示自己在编程方面的高深造诣,这么简单的东西,竟然还使用了引用计数。这么简单的字符串操作,犯得上么,划得来么。当我的头告诉我它使用了引用计数,不能直接释放的时候,我浑身冒冷汗啊,这破逼玩意。。。真真的是太伟大了。
不知道是我对这破逼玩意的理解不够深刻,还是我用的有什么毛病,反正这东西是不能满足我的需求,作为一个C/C++程序员,代码的灵活性是十分重要的。我可不是JAVA程序员,一个功能就那么几个实现办法。
我没有调试环境,公司的调试环境我又用不到,我可以在我的程序里面,LoadLibrary一个MFC的DLL,然后弹出一个对话框,自己做控制台,写外挂不就这么回事么。我是C/C++程序员,我需要代码的灵活使用。
但是这个破逼库。我实在不想说啥了。
个人从来不喜欢用第三方库,安全性,灵活性,完全没有保障,一丁点都没有保障。
json = json_object_get( jroot , "routes" );
Json_getJsonStringToInt( json , "count" , &j );
strT = (int *)buffer;
*strT = j;
for ( i = 0 ; i < j ; i++ )
{
strT[1+i] = (int)( buffer + sizeof(int) * ( j + 1 ) + k ) ;
jsonarr = json_array_get( jsont , i );
Json_getJsonString( jsonarr , "name" , strA );
cq_decodeUtf8( strA , -1 , strW , 100 );
cq_wcscpy( (cqWCHAR *)(strT[1+i]) , strW );
k += ( wcslen( strW ) + 1 ) * 2;
json_decref( jsonarr );
}
json_decref( json );
就这么简短的一段代码,我就不知道我哪里写错什么了。崩了, json_decref( jsont ); 执行到这里就崩。
破逼Json,该死的Json库,操了的更多相关文章
- 一个用C++写的Json解析与处理库
什么是Json?这个库能做什么? JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is e ...
- 迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库。
Swifter.Json 这是迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Github : https://github.com/Dogwei/Swifter.Js ...
- 【转】json格式化、高亮库jsonFormater
http://leo108.com/pid-1996.asp JsonFormater 基于jQuery的json格式化.高亮库 核心代码参考天马行空工作室,本人只做了模块化和一些代码优化. demo ...
- struct2json -- C结构体与 JSON 快速互转库V1.0发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/zhutianlong/article/d ...
- java中常见的json解析方法、库以及性能对比
常见的json解析有原生的JSONObject和JSONArray方法,谷歌的GSON库,阿里的fastjson,还有jackson,json-lib. Gson(项目地址:https://githu ...
- Boost.JSON Boost的JSON解析库(1.75首发)
目录 目录 Boost的1.75版本新库 JSON库简介 JSON的简单使用 编码 最通用的方法 使用std::initializer_list json对象的输出 两种对比 解码 简单的解码 增加错 ...
- 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操
目录 一.模块的绝对导入和相对导入 二.包的概念 三.编程思想的转变 四.软件开发目录规范 五.常见的内置模块 一.时间模块之datatime模块 1.datetime.datetime.today( ...
- [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类
[.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...
- 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...
随机推荐
- Zuul微服务网关
Zuul简介: Zuul是Netflix开源的微服务网关,它可以和Eureka.Ribbon.Hystrix等组件配合使用.Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能 ...
- python中的多线程编程与暂停、播放音频的结合
先给两个原文链接: https://blog.csdn.net/u013755307/article/details/19913655 https://www.cnblogs.com/scolia/p ...
- js中读取json数据
1.JSON字符串转为JSON对象 var obj = eval('('+data+')');① var obj = data.praseJSON();② var obj = JSON.prase(d ...
- Python学习day16-模块基础
<!doctype html>day16 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...
- <爬虫>用正则爬取B站首页图片
import re import requests headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple ...
- jquery旋转插件rotate参数说明
具体可见:http://www.jianshu.com/p/b632a1ed6a57
- WPF界面设计中常用的一些代码片段及属性
一.窗体去掉标题栏.消除掉标题栏后的白边,把窗体置于屏幕中间,窗口大小不能改变. WindowStyle="None" AllowsTransparency="True& ...
- springmvc-高级参数绑定-映射-异常-json数据交互-拦截器
1.1. 高级参数绑定 1.1.1. 复制工程 把昨天的springmvc-web工程复制一份,作为今天开发的工程 复制工程,如下图: 粘贴并修改工程名为web2,如下图: 工程右键点击,如下图: 修 ...
- 关于python DataFrame的学习记录
df_1 = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 4, 5]}) print df_1 默认左边行index0往上递增,AB为顶部标识,数组内为内容 loc— ...
- mac配置ls命令显示不同文件不同颜色
使用Mac看到Linux的Ubuntu终端显示的颜色是不是觉得很酷炫,是否很想自己也拥有一样变色技巧?不怕,我们也是可以的! . 打开配置文件 sudo vim ~/.bash_profile 写入以 ...