File tree 5 files changed +31
-57
lines changed
5 files changed +31
-57
lines changed Original file line number Diff line number Diff line change @@ -11,13 +11,13 @@ set(EXAMPLES
11
11
add_definitions (-D_GLIBCXX_USE_CXX11_ABI)
12
12
set_property (DIRECTORY PROPERTY COMPILE_OPTIONS ${EXTRA_CXX_FLAGS} )
13
13
14
- IF ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
14
+ if ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
15
15
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fpermissive -g -fjsoncpp" )
16
16
else ()
17
17
add_definitions (-D_SCL_SECURE_NO_WARNINGS
18
- D_CRT_SECURE_NO_WARNINGS
19
- -D_WIN32_WINNT=0x601
20
- -D_WINSOCK_DEPRECATED_NO_WARNINGS)
18
+ D_CRT_SECURE_NO_WARNINGS
19
+ -D_WIN32_WINNT=0x601
20
+ -D_WINSOCK_DEPRECATED_NO_WARNINGS)
21
21
endif ()
22
22
23
23
foreach (example ${EXAMPLES} )
Original file line number Diff line number Diff line change 1
- #incldue <iostream>
2
- #incldue <ifstresm>
3
- #incldue <sstream>
1
+ #include < fstream>
4
2
#include < json/json.h>
5
3
/*
6
4
parse from stream,collect comments and capture error info.
7
5
8
6
>g++ readFromStream.cpp -ljsoncpp -std=c++11 -o readFromStream
9
7
>./readFromStream
10
-
11
8
// comment head
12
9
{
13
10
// comment before
14
11
"key" : "value"
15
12
}
16
13
// comment after
17
14
// comment tail
18
-
19
15
*/
20
-
21
- using namespace std ;
22
- int main (int argc,char * argv[]){
16
+ int main (int argc,char * argv[]) {
23
17
Json::Value jsonRoot;
24
18
Json::Value jsonItem;
19
+ std::ifstream ifs;
25
20
ifs.open (argv[1 ]);
26
21
jsonRoot.clear ();
27
22
28
23
Json::CharReaderBuilder builder;
29
24
builder[" collectComments" ]=true ;
30
25
JSONCPP_STRING errs;
31
26
if (!parseFromStream (builder,ifs,&jsonRoot,&errs)){
32
- cout << errs <<endl;
27
+ // std:: cout << errs <<std:: endl;
33
28
return -1 ;
34
29
}
35
- cout << jsonRoot <<endl;
30
+ // std:: cout << jsonRoot <<std:: endl;
36
31
return 0 ;
37
32
}
Original file line number Diff line number Diff line change 1
- #incldue <iostream>
2
- #incldue <ifstresm>
3
- #incldue <memory>
4
1
#include < json/json.h>
5
2
/*
6
3
parse a string to Value object with CharReaderBuilder class or Reader class
7
4
>g++ readFromString.cpp -ljsoncpp -std=c++11 -o readFromString
8
5
>./readFromString
9
-
10
6
colin
11
7
20
12
-
13
8
*/
14
- using namespace std ;
15
- int main (){
16
- string strRes = " {\" Age\" : 20, \" Name\" : \" colin\" }" ;
9
+ int main () {
10
+ std::string strRes = " {\" Age\" : 20, \" Name\" : \" colin\" }" ;
17
11
int nLen = (int )strRes.length ();
18
- const char *pStart = strRes.c_str ();
12
+ const char *pStart = strRes.c_str ();
19
13
20
- std::string err ;
14
+ JSONCPP_STRING errs ;
21
15
Json::Value root;
22
16
23
17
#if 0 //old way
24
18
Json::Reader myreader;
25
19
myreader.parse(strRes,root);
26
20
#else // new way
27
21
Json::CharReaderBuilder jsonreader;
28
- std::unique_ptr< Json::CharReader> const reader (jsonreader.newCharReader ());
22
+ Json::CharReader* reader (jsonreader.newCharReader ());
29
23
if (!reader.parse (pStart,pStart+nLen,&root,&err)){
30
- cout << " error" << endl;
24
+ // std:: cout << "error" << std:: endl;
31
25
return -1 ;
32
26
}
33
27
#endif
34
-
35
- string strName = root[" Name" ].asString ();
28
+ std::string strName = root[" Name" ].asString ();
36
29
int Age = root[" Age" ].asInt ();
37
30
38
- cout << strName << endl;
39
- cout << strAge << endl;
40
-
31
+ // std:: cout << strName << std:: endl;
32
+ // std:: cout << strAge << std:: endl;
33
+ delete reader;
41
34
return 0 ;
42
35
}
Original file line number Diff line number Diff line change 1
- #incldue <iostream>
2
- #incldue <sstream>
3
- #incldue <memory>
1
+ #include < sstream>
4
2
#include < json/json.h>
5
3
/*
6
4
write the Value object to stream
7
5
>g++ streamWrite.cpp -ljsoncpp -std=c++11 -o streamWrite
8
6
>./streamWrite
9
-
10
7
{
11
8
"Age" : 20,
12
9
"Name" : "robin"
13
10
}
14
-
15
11
*/
16
- using namesp std ;
17
- int main (){
18
- string strRes = " " ;
12
+ int main () {
13
+ std::string strRes = " " ;
19
14
Json::Value root ;
20
15
Json::StreamWriterBuilder jsonbuilder;
21
- std::unque_ptr< Json::StreamWriter> writer (jsonbuilder.newStreamWriter ());
22
- ostringstream os;
16
+ Json::StreamWriter* writer (jsonbuilder.newStreamWriter ());
17
+ std:: ostringstream os;
23
18
24
19
root[" Name" ] = " robin" ;
25
20
root[" Age" ] = 20 ;
26
21
writer->write (root,&os);
27
22
strRes = os.str ();
28
23
29
- cout << strRes <<endl;
30
-
24
+ // std:: cout << strRes <<std:: endl;
25
+ delete writer;
31
26
return 0 ;
32
27
}
Original file line number Diff line number Diff line change 1
- #incldue <iostream>
2
- #incldue <sstream>
3
1
#include < json/json.h>
4
2
/*
5
3
write a Value object to a string
6
4
>g++ stringWrite.cpp -ljsoncpp -std=c++11 -o stringWrite
7
5
>./stringWrite
8
-
9
6
{
10
7
"action" : "run",
11
8
"data" :
12
9
{
13
10
"number" : 11
14
11
}
15
12
}
16
-
17
13
*/
18
-
19
- using namespace std ;
20
- int main (){
14
+ int main () {
21
15
22
16
Json::Value root ;
23
17
Json::Value t_data;
@@ -28,14 +22,11 @@ int main(){
28
22
29
23
#if 0 // old way
30
24
Json::FastWriter writer;
31
- string json_file = writer.write(root);
25
+ std:: string json_file = writer.write(root);
32
26
#else // new way
33
27
Json::StreamWriterBuilder builder;
34
- string json_file = Json::writeString (builder,root);
28
+ std:: string json_file = Json::writeString (builder,root);
35
29
#endif
36
-
37
- cout<< json_file << endl;
38
-
39
- return 0 ;
40
-
30
+ // std::cout<< json_file << std::endl;
31
+ return 0 ;
41
32
}
You can’t perform that action at this time.
0 commit comments