相关疑难解决方法(0)

C++ JSON序列化

我想要一种尽可能自动地将对象序列化和反序列化为JSON的方法.

序列化: 对我来说,理想的方法是,如果我在实例中调用JSONSerialize(),它将返回一个带有JSON对象的字符串,该对象具有该对象的所有公共属性"name_of_property": "value".对于那些作为原语的值,它很简单,对于它应该尝试在每个JSONSerialize()或ToString()上调用的对象来递归序列化所有公共属性.对于集合,它也应该正常运行(只需矢量/数组就可以了).

反序列化:只需创建给定对象的实例(让我们说一只狗)并调用JSONDeserialize(json_string),这应该填充所有公共属性,在属性不是基元或需要的集合的情况下创建所需的对象.

一个例子应该像这样运行:

Dog *d1 = new Dog();
d1->name = "myDog";

string serialized = d1->JSONSerialize();

Dog *d2 = new Dog();
d2->JSONDeserialize(serialized);
std::cout << d2->name; // This will print "myDog"
Run Code Online (Sandbox Code Playgroud)

或者像那样:

Dog *d1 = new Dog();
d1->name = "myDog";

string serialized = JSONSerializer.Serialize(d1);

Dog *d2 = JSONSerializer.Deserialize(serialized, Dog);
std::cout << d2->name; // This will print "myDog"
Run Code Online (Sandbox Code Playgroud)

我该如何轻松地将其拉下来?

c++ json

44
推荐指数
4
解决办法
7万
查看次数

错误C2327:不是类型名称,静态或枚举器

我在Windows上面临"错误C2327".
我减少了我的代码,并在测试程序中遇到类似的错误

#include <boost/intrusive/list.hpp>
#include <iostream>

class Test {
protected:
         typedef Test self_type;
         boost::intrusive::list_member_hook<> order_hook;
public:
         typedef boost::intrusive::member_hook<self_type,
                            boost::intrusive::list_member_hook<>,
                            & Test::order_hook > order_hook_type;
};
Run Code Online (Sandbox Code Playgroud)

这在g ++上工作正常但在Windows上却出现以下错误:

test.cpp(11) : error C2327: 'Test::order_hook' : is not a type name, static, or enumerator
test.cpp(11) : error C2065: 'order_hook' : undeclared identifier
Run Code Online (Sandbox Code Playgroud)

请帮忙.我错过了什么窗户?

c++ windows templates g++ visual-studio

5
推荐指数
1
解决办法
3023
查看次数

标签 统计

c++ ×2

g++ ×1

json ×1

templates ×1

visual-studio ×1

windows ×1