Comments (5)
支持结构体嵌套的,像你的这种需要这么来定义:
struct Collection {
float temperature;
std::string mac;
float humidity;
XTOSTRUCT(O(temperature, mac, humidity));
};
struct Data {
int64_t timestamp;
std::vector collections;
std::string address;
XTOSTRUCT(O(timestamp, collections, address));
};
struct Info {
int errorCode;
std::string message;
Data data;
XTOSTRUCT(O(errorCode, message, data));
};
int main(int argc, char *argv[]) {
Info in;
in.errorCode = 0;
in.data.timestamp = 1531710826;
in.data.collections.resize(2);
in.data.collections[0].temperature = 26.7;
in.data.collections[0].mac = "ABCDEF";
in.data.collections[0].humidity = 75.1;
in.data.collections[1].temperature = 25.9;
in.data.collections[1].mac = "ABCDE2";
in.data.collections[1].humidity = 74.6;
in.data.address = "DEFAB";
std::string json = x2struct::X::tojson(in);
std::cout<<json<<std::endl;
return 0;
}
from x2struct.
请问必须使用O()
吗?我的同事使用M()
好像会编译报错
from x2struct.
M也是可以的,O和M的不同在于解析json的时候。M包起来的字段必须存在。
比如O(a,b)可以解析{"a":1},但是M(a,b)解析{"a":1}就会抛出异常,因为b不存在
from x2struct.
O的运行结果
x@~$ ./xtest
{"errorCode":0,"message":"","data":{"timestamp":1531710826,"collections":[{"temperature":26.700000762939454,"mac":"ABCDEF","humidity":75.0999984741211},{"temperature":25.899999618530275,"mac":"ABCDE2","humidity":74.5999984741211}],"address":"DEFAB"}}
M的运行结果
x@~$ ./xtest
{"errorCode":0,"message":"","data":{"timestamp":1531710826,"collections":[{"temperature":26.700000762939454,"mac":"ABCDEF","humidity":75.0999984741211},{"temperature":25.899999618530275,"mac":"ABCDE2","humidity":74.5999984741211}],"address":"DEFAB"}}
from x2struct.
抱歉,未能及时回复。我的同事还在调试代码中,你的回复对我们确定方向很有帮助,谢谢(* ̄︶ ̄)
from x2struct.
Related Issues (20)
- QT data type HOT 2
- 多重嵌套结构体 xhas无效 HOT 1
- Failed to build with time_t on macOS HOT 1
- 结构体使用memset之后程序退出异常 HOT 2
- enum type not supported HOT 1
- 有null的处理失败 HOT 2
- not work on windows HOT 1
- 'x_struct_to_str': identifier not found HOT 1
- 结构体成员较多的时候编译失败 HOT 2
- 不能直接支持数组 HOT 1
- 嵌套json不知道具体的字段,只做转发用,好像不能解析 HOT 1
- 同样的结构体,希望有值就显示,无值不显示,同样的键,值的类型可能是int类型,或者字符 HOT 1
- demo编译不过? HOT 1
- 请问要如何重新实现struct::X::tojson这个函数 HOT 5
- QT 5.12引入后报错 HOT 1
- C++ 版本依赖是怎样的? HOT 1
- 是否支持xml属性 HOT 3
- 对于类型不匹配的情况下,x2struct::X::loadjson阻塞线程 HOT 2
- I need some help with a complex json HOT 2
- 需求:option变量转换到json,没有赋值时不会输出 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from x2struct.