小鱼塘--自说自话的地方

  • 小玩意
  • 小想法
记录自己技术和想法地方
  1. 首页
  2. c++
  3. 正文

jsoncpp json压缩转换字符串写法

18 7 月, 2022 2075点热度 1人点赞 0条评论
内容目录

背景

自己用jsoncpp已经几年了,一直都用 toStyledString来转换字符串,但这种格式化字符串,但如果用来传递数据,那么有许多多余数据,所以我一直想找到压缩的字符串,网上找了一些关键词基本都没有找到,突然有一天我直接看一下jsoncpp的源代码。

过程

  1. 查看toStyledString 代码
    
    std::string 
    Value::toStyledString() const
    {
    StyledWriter writer;
    return writer.write( *this );
    }
题外话:用vscode看代码还是蛮舒服的
jsoncpp 定义styledWriter ,然后我发现他有一个FastWriter

class JSON_API FastWriter : public Writer
{
public:
FastWriter();
virtual ~FastWriter(){}
void enableYAMLCompatibility();
public:
virtual std::string write( const Value &root );
private:
void writeValue( const Value &value );

  std::string document_;
  bool yamlCompatiblityEnabled_;

};

然后看了一下write就是我想要的压缩的字符串。

## 使用

Json::Value root;
root["id"] = "test";
root["name"] = "fish";
FastWriter fast_writer;
std::string result = fast_writer.write(root);


## 总结
jsoncpp 我用几年前的老版本,看github 貌似重写了,不过目前自己够用,新不代表就好。。
jsoncpp 我的用版本不支持 uint_64,我只能用std::string 来代替
标签: json jsoncpp
最后更新:18 7 月, 2022

小鱼儿

爱研究技术,爱玩LOL

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 小鱼塘. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备18005349号