c++不使用外部库如何解析json文件?

qq_37350941 2017-04-19 09:54:00
不使用外部库(例如JSON CPP等)如何需要实现对json文件的读和写?
需要封装成一个.h文件和.cpp文件
...全文
970 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ri_aje 2017-04-20
  • 打赏
  • 举报
回复
引用 19 楼 qq_37350941 的回复:
[quote=引用 15 楼 ri_aje 的回复:] 那就自己写一个,递归解析呗。
请问递归解析是指自己模仿json文件的格式来进行各种操作吗? 比如遇到“{”,就递归,直到找到对应的“}”为止 是这个意思吗?[/quote] 差不多,把这页 (http://www.json.org/) 上的状态机实现了就行。
赵4老师 2017-04-20
  • 打赏
  • 举报
回复
引用 25 楼 ri_aje 的回复:
[quote=引用 19 楼 qq_37350941 的回复:] [quote=引用 15 楼 ri_aje 的回复:] 那就自己写一个,递归解析呗。
请问递归解析是指自己模仿json文件的格式来进行各种操作吗? 比如遇到“{”,就递归,直到找到对应的“}”为止 是这个意思吗?[/quote] 差不多,把这页 (http://www.json.org/) 上的状态机实现了就行。[/quote] http://www.json.org/json-zh.html
mLee79 2017-04-19
  • 打赏
  • 举报
回复
json 格式那么简单, 自己练练手吧, 300行代码就该够了。
ri_aje 2017-04-19
  • 打赏
  • 举报
回复
那就自己写一个,递归解析呗。
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
引用 12 楼 jack960330 的回复:
[quote=引用 8 楼 qq_37350941 的回复:] [quote=引用 7 楼 jack960330 的回复:] [quote=引用 5 楼 qq_37350941 的回复:] [quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp [/quote] 领导说不能用第三方库......让自己写......只要实现取整段,取字符串,取数字即可[/quote] 为什么不让用第三方库?有没有找领导谈谈?[/quote] 我之前就是用的第三方库,交差的时候被告知不能用第三方库(好像是兼容性方面的问题),需要自己写一个解析json 文件的cpp,让别人在工程里可以直接调用。 当然肯定没必要写的向第三方库那么专业了,只需要实现对json文件的读取(取int,取string,取整段即可)
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
没人能帮帮忙吗
欧阳春晖 2017-04-19
  • 打赏
  • 举报
回复
引用 8 楼 qq_37350941 的回复:
[quote=引用 7 楼 jack960330 的回复:] [quote=引用 5 楼 qq_37350941 的回复:] [quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp [/quote] 领导说不能用第三方库......让自己写......只要实现取整段,取字符串,取数字即可[/quote] 为什么不让用第三方库?有没有找领导谈谈?
欧阳春晖 2017-04-19
  • 打赏
  • 举报
回复
引用 7 楼 jack960330 的回复:
[quote=引用 5 楼 qq_37350941 的回复:] [quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp [/quote] 。。。什么领导,为什么不能使用第三方l
引用 10 楼 zhao4zhong1 的回复:
[quote=引用 8 楼 qq_37350941 的回复:] [quote=引用 7 楼 jack960330 的回复:] [quote=引用 5 楼 qq_37350941 的回复:] [quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp [/quote] 领导说不能用第三方库......让自己写......只要实现取整段,取字符串,取数字即可[/quote] 别轻易相信领导说的,没准明天就说要加取别的类型的功能了。让他立字据![/quote]、 别这样,说不定领导有他自己的考虑吧,可以找领导谈谈,了解为什么不希望用其他库。。
赵4老师 2017-04-19
  • 打赏
  • 举报
回复
引用 8 楼 qq_37350941 的回复:
[quote=引用 7 楼 jack960330 的回复:] [quote=引用 5 楼 qq_37350941 的回复:] [quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp [/quote] 领导说不能用第三方库......让自己写......只要实现取整段,取字符串,取数字即可[/quote] 别轻易相信领导说的,没准明天就说要加取别的类型的功能了。让他立字据!
赵4老师 2017-04-19
  • 打赏
  • 举报
回复
引用 6 楼 qq_37350941 的回复:
[quote=引用 4 楼 zhao4zhong1 的回复:] json库难道没有开源的?
有开源的,jsoncpp就是开源的,但我刚学C++,实在看不懂啊,可以帮忙看下如何移植吗[/quote] 把开源库的源代码添加到自己的项目中。
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
引用 7 楼 jack960330 的回复:
[quote=引用 5 楼 qq_37350941 的回复:] [quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp [/quote] 领导说不能用第三方库......让自己写......只要实现取整段,取字符串,取数字即可
欧阳春晖 2017-04-19
  • 打赏
  • 举报
回复
引用 5 楼 qq_37350941 的回复:
[quote=引用 3 楼 jack960330 的回复:] 自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说[/quote] 你直接用第三方库就行了啊 jsoncpp
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
json库难道没有开源的?
有开源的,jsoncpp就是开源的,但我刚学C++,实在看不懂啊,可以帮忙看下如何移植吗
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
引用 3 楼 jack960330 的回复:
自己写解析器,就不需要带外部库
现在的问题是,我看不太懂外部的解析器。。请问怎样能直接移植过来?求大神详细说说
赵4老师 2017-04-19
  • 打赏
  • 举报
回复
json库难道没有开源的?
欧阳春晖 2017-04-19
  • 打赏
  • 举报
回复
自己写解析器,就不需要带外部库
yshuise 2017-04-19
  • 打赏
  • 举报
回复
自己写
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
小弟刚接触c++,可以给一个完整源代码吗?谢谢各位大神
vnvlyp 2017-04-19
  • 打赏
  • 举报
回复
你只要看gason.h和gason.cpp就可以了 benchmark是速度测试,pretty-print应该是逆向输出
qq_37350941 2017-04-19
  • 打赏
  • 举报
回复
引用 22 楼 vnvlyp 的回复:
你可以找个简单的JSON解析器来研究一下怎么写的,比如gason,总共只有600多行,速度还奇快,比rapidjson什么的都要快,当然支持的特性并不完整。 https://github.com/vivkin/gason 我以前写过一个,就是基于这个写的。
下载了一个,先看源码模仿一下 请问benchmark.cpp和pretty-print.cpp是干嘛用的?
加载更多回复(6)

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧