Skip to content

Commit 9b7f5dd

Browse files
committed
update file operation
1 parent 3313add commit 9b7f5dd

File tree

14 files changed

+74
-131
lines changed

14 files changed

+74
-131
lines changed

Diff for: .idea/vcs.xml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: cpp_json/JsonAPI/Json.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace JSON{
2626

2727
class json; /* json is a class with a unique_ptr points to Json_value object */
2828
using arr = vector<json>;
29-
using mem = unordered_map<string, json>; /* json-object: using unordered_map instead of dynamic array for the O(1) visit */
29+
using mem = unordered_map<string, json>; /* json-object: using std::unordered_map instead of std::vector for the O(1) visit */
3030
class Json_value {
3131
public:
3232
/** constructors and operators **/

Diff for: cpp_json/JsonAPI/Jsonparser.cpp

+15
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
#include "Jsonparser.h"
66
#include <exception>
7+
#include <fstream>
78

89
namespace Jsonparser{
10+
using ifstream = std::ifstream;
911

1012
PARSE_RESULT parser::parse(const char * json){
1113
PARSE_RESULT ret;
@@ -24,6 +26,19 @@ namespace Jsonparser{
2426
return ret;
2527
}
2628

29+
PARSE_RESULT parser::parse_file(const char * filename){
30+
string buffer;
31+
string str;
32+
ifstream is;
33+
is.open(filename, std::ios::in);
34+
if(!is.is_open()) cout << "file open fail!\n";
35+
while(is >> buffer){
36+
str += buffer;
37+
}
38+
cout << str << endl;
39+
return parse(str.c_str());
40+
}
41+
2742
PARSE_RESULT parser::parse_value(){
2843
switch(*stk.json){
2944
case 't': return parse_literal("true", JSON::JSON_TRUE);

Diff for: cpp_json/JsonAPI/Jsonparser.h

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ constexpr int PARSER_STACK_INIT_SIZE = 256;
3535
public:
3636
PARSE_RESULT parse(const char * json); /* it is the central part of parse, we use it to call specialized parsers */
3737
parser(JSON::json & _j):j(_j) /*stk(*(new stack))*/{}
38+
PARSE_RESULT parse_file(const char * filename);
3839
private:
3940
stack_j stk;
4041
JSON::json & j; //avoid arguments pass by value

Diff for: cpp_json/__init__.py

Whitespace-only changes.

Diff for: cpp_json/cmake-build-debug/CMakeFiles/Makefile.cmake

-70
Original file line numberDiff line numberDiff line change
@@ -7,91 +7,26 @@ set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
77
# The top level Makefile was generated from the following files:
88
set(CMAKE_MAKEFILE_DEPENDS
99
"CMakeCache.txt"
10-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCCompiler.cmake.in"
11-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCCompilerABI.c"
1210
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCInformation.cmake"
13-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCXXCompiler.cmake.in"
14-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCXXCompilerABI.cpp"
1511
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCXXInformation.cmake"
1612
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCommonLanguageInclude.cmake"
17-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeCompilerIdDetection.cmake"
18-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineCCompiler.cmake"
19-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineCXXCompiler.cmake"
20-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineCompileFeatures.cmake"
21-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineCompiler.cmake"
22-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineCompilerABI.cmake"
23-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineCompilerId.cmake"
24-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeDetermineSystem.cmake"
2513
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
26-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeFindBinUtils.cmake"
2714
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeFindCodeBlocks.cmake"
2815
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeGenericSystem.cmake"
2916
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeInitializeConfigs.cmake"
3017
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeLanguageInformation.cmake"
31-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeParseImplicitIncludeInfo.cmake"
32-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeParseImplicitLinkInfo.cmake"
33-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeSystem.cmake.in"
3418
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeSystemSpecificInformation.cmake"
3519
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeSystemSpecificInitialize.cmake"
36-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeTestCCompiler.cmake"
37-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeTestCXXCompiler.cmake"
38-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeTestCompilerCommon.cmake"
39-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/CMakeUnixFindMake.cmake"
40-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/ADSP-DetermineCompiler.cmake"
41-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
42-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
4320
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/AppleClang-C.cmake"
4421
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/AppleClang-CXX.cmake"
45-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
46-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Borland-DetermineCompiler.cmake"
47-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
4822
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
49-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Clang-DetermineCompiler.cmake"
50-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
5123
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Clang.cmake"
52-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
53-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
54-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
55-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Cray-DetermineCompiler.cmake"
56-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
57-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
58-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/GHS-DetermineCompiler.cmake"
59-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
60-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
6124
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/GNU.cmake"
62-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/HP-C-DetermineCompiler.cmake"
63-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
64-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/IAR-DetermineCompiler.cmake"
65-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
66-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
67-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Intel-DetermineCompiler.cmake"
68-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/MSVC-DetermineCompiler.cmake"
69-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
70-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
71-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/PGI-DetermineCompiler.cmake"
72-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/PathScale-DetermineCompiler.cmake"
73-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/SCO-DetermineCompiler.cmake"
74-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
75-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
76-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
77-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/TI-DetermineCompiler.cmake"
78-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
79-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
80-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
81-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/Watcom-DetermineCompiler.cmake"
82-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/XL-C-DetermineCompiler.cmake"
83-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
84-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
85-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
86-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
87-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
88-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Internal/FeatureTesting.cmake"
8925
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Apple-AppleClang-C.cmake"
9026
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Apple-AppleClang-CXX.cmake"
9127
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Apple-Clang-C.cmake"
9228
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Apple-Clang-CXX.cmake"
9329
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Apple-Clang.cmake"
94-
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Darwin-Determine-CXX.cmake"
9530
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Darwin-Initialize.cmake"
9631
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/Darwin.cmake"
9732
"/Applications/CLion.app/Contents/bin/cmake/mac/share/cmake-3.19/Modules/Platform/UnixPaths.cmake"
@@ -110,11 +45,6 @@ set(CMAKE_MAKEFILE_OUTPUTS
11045

11146
# Byproducts of CMake generate step:
11247
set(CMAKE_MAKEFILE_PRODUCTS
113-
"CMakeFiles/3.19.2/CMakeSystem.cmake"
114-
"CMakeFiles/3.19.2/CMakeCCompiler.cmake"
115-
"CMakeFiles/3.19.2/CMakeCXXCompiler.cmake"
116-
"CMakeFiles/3.19.2/CMakeCCompiler.cmake"
117-
"CMakeFiles/3.19.2/CMakeCXXCompiler.cmake"
11848
"CMakeFiles/CMakeDirectoryInformation.cmake"
11949
)
12050

Diff for: cpp_json/cmake-build-debug/CMakeFiles/clion-log.txt

-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,4 @@
11
/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" "/Users/wocaibujiaoquanmei/iCloud 云盘(归档)/GitHub/cppjson/cpp_json"
2-
-- The C compiler identification is AppleClang 10.0.1.10010046
3-
-- The CXX compiler identification is AppleClang 10.0.1.10010046
4-
-- Detecting C compiler ABI info
5-
-- Detecting C compiler ABI info - done
6-
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
7-
-- Detecting C compile features
8-
-- Detecting C compile features - done
9-
-- Detecting CXX compiler ABI info
10-
-- Detecting CXX compiler ABI info - done
11-
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/clang++ - skipped
12-
-- Detecting CXX compile features
13-
-- Detecting CXX compile features - done
142
-- Configuring done
153
-- Generating done
164
-- Build files have been written to: /Users/wocaibujiaoquanmei/iCloud 云盘(归档)/GitHub/cppjson/cpp_json/cmake-build-debug
Binary file not shown.
39.7 KB
Binary file not shown.
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Start testing: Dec 19 17:36 CST
1+
Start testing: Apr 02 11:16 CST
22
----------------------------------------------------------
3-
End testing: Dec 19 17:36 CST
3+
End testing: Apr 02 11:16 CST

Diff for: cpp_json/cmake-build-debug/cpp_json

64.1 KB
Binary file not shown.

Diff for: cpp_json/external/__init__.py

Whitespace-only changes.

Diff for: cpp_json/main.cpp

+6-46
Original file line numberDiff line numberDiff line change
@@ -4,57 +4,17 @@
44

55

66

7+
8+
9+
710
int main() {
811
JSON::json j, j2;
912
Jsonparser::parser p(j);
10-
p.parse("{\n"
11-
" \"name\": \"vue_test\",\n"
12-
" \"version\": 1.4,\n"
13-
" \"private\": true,\n"
14-
" \"scripts\": {\n"
15-
" \"serve\": \"vue-cli-service serve\",\n"
16-
" \"build\": \"vue-cli-service build\",\n"
17-
" \"lint\": \"vue-cli-service lint\"\n"
18-
" },\n"
19-
" \"dependencies\": {\n"
20-
" \"core-js\": \"^3.6.5\",\n"
21-
" \"vue\": \"^2.6.11\"\n"
22-
" },\n"
23-
" \"devDependencies\": {\n"
24-
" \"@vue/cli-plugin-babel\": \"~4.5.0\",\n"
25-
" \"@vue/cli-plugin-eslint\": \"~4.5.0\",\n"
26-
" \"@vue/cli-service\": \"~4.5.0\",\n"
27-
" \"babel-eslint\": \"^10.1.0\",\n"
28-
" \"eslint\": \"^6.7.2\",\n"
29-
" \"eslint-plugin-vue\": \"^6.2.2\",\n"
30-
" \"vue-template-compiler\": \"^2.6.11\"\n"
31-
" },\n"
32-
" \"eslintConfig\": {\n"
33-
" \"root\": true,\n"
34-
" \"env\": {\n"
35-
" \"node\": true\n"
36-
" },\n"
37-
" \"extends\": [\n"
38-
" \"plugin:vue/essential\",\n"
39-
" \"eslint:recommended\"\n"
40-
" ],\n"
41-
" \"parserOptions\": {\n"
42-
" \"parser\": \"babel-eslint\"\n"
43-
" },\n"
44-
" \"rules\": {}\n"
45-
" },\n"
46-
" \"browserslist\": [\n"
47-
" \"> 1%\",\n"
48-
" \"last 2 versions\",\n"
49-
" \"not dead\"\n"
50-
" ]\n"
51-
"}");
52-
//p.parse("1.4");
53-
//cout << j.get_number() << endl;
13+
vector<int> data{4, 3, 4, 1, 8, 0, 8};
14+
p.parse_file("testexample1.json");
5415
Jsonparser::parser p2(j2);
55-
//p2.parse("{\"key\":[true, false, {\"1\":true}, {\"2\": false}, \"sfjdls\", [true, {\"a\": false}]]}");
5616
cout << j.get_type_format() << ' ' << endl;
5717
Jsonstringifier::stringifier g;
58-
cout << g.stringify(j);
18+
//cout << g.stringify(j);
5919
return 0;
6020
}

Diff for: cpp_json/testexample1.json

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"min_position": 3,
3+
"has_more_items": false,
4+
"items_html": "Bike",
5+
"new_latent_count": 2,
6+
"data": {
7+
"length": 30,
8+
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
9+
},
10+
"numericalArray": [
11+
33,
12+
32,
13+
25,
14+
25,
15+
23
16+
],
17+
"StringArray": [
18+
"Nitrogen",
19+
"Carbon",
20+
"Oxygen",
21+
"Carbon"
22+
],
23+
"multipleTypesArray": true,
24+
"objArray": [
25+
{
26+
"class": "middle",
27+
"age": 0
28+
},
29+
{
30+
"class": "lower",
31+
"age": 5
32+
},
33+
{
34+
"class": "lower",
35+
"age": 4
36+
},
37+
{
38+
"class": "lower",
39+
"age": 7
40+
},
41+
{
42+
"class": "lower",
43+
"age": 7
44+
}
45+
]
46+
}

0 commit comments

Comments
 (0)