eis/inc/x2struct/test/example_json.cpp

55 lines
1.5 KiB
C++
Raw Permalink Normal View History

/*
* Copyright (C) 2019 YY Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <iostream>
#include "example.h"
using namespace std;
using namespace x2struct;
struct node
{
int a;
int b;
XTOSTRUCT(O(a,b));
};
int main(int argc, char *argv[]) {
xstruct x;
node st;
st.a=1;
st.b=2;
// struct <--> string
cout<<"======== struct <-----> string ==========="<<endl;
X::loadjson("test.json", x, true); // load json from file, if from string, last parameter give false
cout<<X::tojson(st)<<endl<<endl; // struct to string.
// map <--> string
cout<<"======== map <-----> string ==========="<<endl;
string smap = "{\"a\":1, \"b\":2}";
map<string, int> m;
X::loadjson(smap, m, false);
cout<<X::tojson(m)<<endl<<endl;
// vector <--> string
cout<<"======== vector <-----> string ==========="<<endl;
string svector = "[1, 2, 3]";
vector<int> v;
X::loadjson(svector, v, false);
cout<<X::tojson(v)<<endl<<endl;
}