@lsby/net-core 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/extend/{extend.cjs → wrap-json.cjs} +5 -5
- package/dist/cjs/extend/{extend.d.cts → wrap-json.d.cts} +2 -2
- package/dist/cjs/index.cjs +105 -69
- package/dist/cjs/index.d.cts +1 -0
- package/dist/esm/{extend/extend.js → chunk-ISEUOCLS.js} +7 -7
- package/dist/esm/extend/{extend.d.ts → wrap-json.d.ts} +2 -2
- package/dist/esm/extend/wrap-json.js +13 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +8 -0
- package/package.json +1 -1
|
@@ -17,14 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
// src/extend/
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
20
|
+
// src/extend/wrap-json.ts
|
|
21
|
+
var wrap_json_exports = {};
|
|
22
|
+
__export(wrap_json_exports, {
|
|
23
23
|
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B: () => \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
24
24
|
\u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C: () => \u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C,
|
|
25
25
|
\u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C: () => \u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C
|
|
26
26
|
});
|
|
27
|
-
module.exports = __toCommonJS(
|
|
27
|
+
module.exports = __toCommonJS(wrap_json_exports);
|
|
28
28
|
var import_zod = require("zod");
|
|
29
29
|
|
|
30
30
|
// src/interface/interface-type.ts
|
|
@@ -96,7 +96,7 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
|
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
|
|
99
|
-
// src/extend/
|
|
99
|
+
// src/extend/wrap-json.ts
|
|
100
100
|
var \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B = class extends \u63A5\u53E3\u7C7B\u578B {
|
|
101
101
|
constructor(path, method, \u63D2\u4EF6\u4EEC, \u6B63\u786E\u8FD4\u56DE\u7C7B\u578B, \u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B) {
|
|
102
102
|
super(
|
|
@@ -14,13 +14,13 @@ declare class 包装的接口类型<路径 extends string, 方法 extends 'get'
|
|
|
14
14
|
}>> {
|
|
15
15
|
constructor(path: 路径, method: 方法, 插件们: [...插件们], 正确返回类型: 正确返回类型, 错误返回类型: 错误返回类型);
|
|
16
16
|
}
|
|
17
|
-
declare class 包装的正确JSON结果<Data extends
|
|
17
|
+
declare class 包装的正确JSON结果<Data> extends __JSON__<{
|
|
18
18
|
status: 'success';
|
|
19
19
|
data: Data;
|
|
20
20
|
}> {
|
|
21
21
|
constructor(data: Data);
|
|
22
22
|
}
|
|
23
|
-
declare class 包装的错误JSON结果<Data extends
|
|
23
|
+
declare class 包装的错误JSON结果<Data> extends __JSON__$1<{
|
|
24
24
|
status: 'fail';
|
|
25
25
|
data: Data;
|
|
26
26
|
}> {
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -32,6 +32,9 @@ var src_exports = {};
|
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
JSON\u89E3\u6790\u63D2\u4EF6: () => JSON\u89E3\u6790\u63D2\u4EF6,
|
|
34
34
|
\u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6: () => \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6,
|
|
35
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B: () => \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
36
|
+
\u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C: () => \u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C,
|
|
37
|
+
\u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C: () => \u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C,
|
|
35
38
|
\u63A5\u53E3: () => \u63A5\u53E3,
|
|
36
39
|
\u63A5\u53E3\u7C7B\u578B: () => \u63A5\u53E3\u7C7B\u578B,
|
|
37
40
|
\u63D2\u4EF6: () => \u63D2\u4EF6,
|
|
@@ -48,19 +51,8 @@ __export(src_exports, {
|
|
|
48
51
|
});
|
|
49
52
|
module.exports = __toCommonJS(src_exports);
|
|
50
53
|
|
|
51
|
-
// src/
|
|
52
|
-
var
|
|
53
|
-
constructor(\u63A5\u53E3\u7C7B\u578B2, \u5B9E\u73B0) {
|
|
54
|
-
this.\u63A5\u53E3\u7C7B\u578B = \u63A5\u53E3\u7C7B\u578B2;
|
|
55
|
-
this.\u5B9E\u73B0 = \u5B9E\u73B0;
|
|
56
|
-
}
|
|
57
|
-
\u83B7\u5F97\u7C7B\u578B() {
|
|
58
|
-
return this.\u63A5\u53E3\u7C7B\u578B;
|
|
59
|
-
}
|
|
60
|
-
\u83B7\u5F97\u5B9E\u73B0() {
|
|
61
|
-
return this.\u5B9E\u73B0;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
54
|
+
// src/extend/wrap-json.ts
|
|
55
|
+
var import_zod = require("zod");
|
|
64
56
|
|
|
65
57
|
// src/interface/interface-type.ts
|
|
66
58
|
var \u63A5\u53E3\u7C7B\u578B = class {
|
|
@@ -88,6 +80,101 @@ var \u63A5\u53E3\u7C7B\u578B = class {
|
|
|
88
80
|
}
|
|
89
81
|
};
|
|
90
82
|
|
|
83
|
+
// src/global/global.ts
|
|
84
|
+
var import_ts_global = require("@lsby/ts-global");
|
|
85
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
86
|
+
var Global = new import_ts_global.GlobalService([
|
|
87
|
+
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
88
|
+
return new import_ts_log.Log("@lsby:net-core");
|
|
89
|
+
})
|
|
90
|
+
]);
|
|
91
|
+
|
|
92
|
+
// src/result/result.ts
|
|
93
|
+
var \u7ED3\u679C = class {
|
|
94
|
+
};
|
|
95
|
+
var \u6B63\u786E\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
96
|
+
\u6B63\u786E\u7ED3\u679C\u70D9\u5370 = true;
|
|
97
|
+
};
|
|
98
|
+
var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
|
|
99
|
+
constructor(data) {
|
|
100
|
+
super();
|
|
101
|
+
this.data = data;
|
|
102
|
+
}
|
|
103
|
+
log = Global.getItem("log");
|
|
104
|
+
async run(req, res) {
|
|
105
|
+
var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
|
|
106
|
+
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
107
|
+
res.send(this.data);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
var \u6B63\u786E\u81EA\u5B9A\u4E49\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
|
|
111
|
+
constructor(customHandler) {
|
|
112
|
+
super();
|
|
113
|
+
this.customHandler = customHandler;
|
|
114
|
+
}
|
|
115
|
+
async run(req, res) {
|
|
116
|
+
return this.customHandler(req, res);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var \u9519\u8BEF\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
120
|
+
\u9519\u8BEF\u7ED3\u679C\u70D9\u5370 = true;
|
|
121
|
+
};
|
|
122
|
+
var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
|
|
123
|
+
constructor(data) {
|
|
124
|
+
super();
|
|
125
|
+
this.data = data;
|
|
126
|
+
}
|
|
127
|
+
log = Global.getItem("log");
|
|
128
|
+
async run(req, res) {
|
|
129
|
+
var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
|
|
130
|
+
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
131
|
+
res.send(this.data);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
// src/extend/wrap-json.ts
|
|
136
|
+
var \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B = class extends \u63A5\u53E3\u7C7B\u578B {
|
|
137
|
+
constructor(path, method, \u63D2\u4EF6\u4EEC, \u6B63\u786E\u8FD4\u56DE\u7C7B\u578B, \u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B) {
|
|
138
|
+
super(
|
|
139
|
+
path,
|
|
140
|
+
method,
|
|
141
|
+
\u63D2\u4EF6\u4EEC,
|
|
142
|
+
import_zod.z.object({ status: import_zod.z.literal("success"), data: \u6B63\u786E\u8FD4\u56DE\u7C7B\u578B }),
|
|
143
|
+
import_zod.z.object({ status: import_zod.z.literal("fail"), data: \u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B })
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
var \u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786EJSON\u7ED3\u679C {
|
|
148
|
+
constructor(data) {
|
|
149
|
+
super({
|
|
150
|
+
status: "success",
|
|
151
|
+
data
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
var \u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEFJSON\u7ED3\u679C {
|
|
156
|
+
constructor(data) {
|
|
157
|
+
super({
|
|
158
|
+
status: "fail",
|
|
159
|
+
data
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
// src/interface/interface.ts
|
|
165
|
+
var \u63A5\u53E3 = class {
|
|
166
|
+
constructor(\u63A5\u53E3\u7C7B\u578B2, \u5B9E\u73B0) {
|
|
167
|
+
this.\u63A5\u53E3\u7C7B\u578B = \u63A5\u53E3\u7C7B\u578B2;
|
|
168
|
+
this.\u5B9E\u73B0 = \u5B9E\u73B0;
|
|
169
|
+
}
|
|
170
|
+
\u83B7\u5F97\u7C7B\u578B() {
|
|
171
|
+
return this.\u63A5\u53E3\u7C7B\u578B;
|
|
172
|
+
}
|
|
173
|
+
\u83B7\u5F97\u5B9E\u73B0() {
|
|
174
|
+
return this.\u5B9E\u73B0;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
|
|
91
178
|
// src/interface/plug.ts
|
|
92
179
|
var \u63D2\u4EF6 = class {
|
|
93
180
|
constructor(\u7C7B\u578B, \u5B9E\u73B0) {
|
|
@@ -104,8 +191,8 @@ var \u63D2\u4EF6 = class {
|
|
|
104
191
|
|
|
105
192
|
// src/plugin/chinese-path.ts
|
|
106
193
|
var import_node_url = require("url");
|
|
107
|
-
var
|
|
108
|
-
var zod\u7C7B\u578B\u8868\u793A =
|
|
194
|
+
var import_zod2 = require("zod");
|
|
195
|
+
var zod\u7C7B\u578B\u8868\u793A = import_zod2.z.object({});
|
|
109
196
|
var \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
110
197
|
constructor() {
|
|
111
198
|
super(zod\u7C7B\u578B\u8868\u793A, async (request) => {
|
|
@@ -127,17 +214,6 @@ var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
127
214
|
// src/plugin/json.ts
|
|
128
215
|
var import_node_util = require("util");
|
|
129
216
|
var import_express = __toESM(require("express"), 1);
|
|
130
|
-
|
|
131
|
-
// src/global/global.ts
|
|
132
|
-
var import_ts_global = require("@lsby/ts-global");
|
|
133
|
-
var import_ts_log = require("@lsby/ts-log");
|
|
134
|
-
var Global = new import_ts_global.GlobalService([
|
|
135
|
-
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
136
|
-
return new import_ts_log.Log("@lsby:net-core");
|
|
137
|
-
})
|
|
138
|
-
]);
|
|
139
|
-
|
|
140
|
-
// src/plugin/json.ts
|
|
141
217
|
var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
142
218
|
log = Global.getItem("log");
|
|
143
219
|
constructor(t, opt) {
|
|
@@ -179,49 +255,6 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
179
255
|
}
|
|
180
256
|
};
|
|
181
257
|
|
|
182
|
-
// src/result/result.ts
|
|
183
|
-
var \u7ED3\u679C = class {
|
|
184
|
-
};
|
|
185
|
-
var \u6B63\u786E\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
186
|
-
\u6B63\u786E\u7ED3\u679C\u70D9\u5370 = true;
|
|
187
|
-
};
|
|
188
|
-
var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
|
|
189
|
-
constructor(data) {
|
|
190
|
-
super();
|
|
191
|
-
this.data = data;
|
|
192
|
-
}
|
|
193
|
-
log = Global.getItem("log");
|
|
194
|
-
async run(req, res) {
|
|
195
|
-
var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
|
|
196
|
-
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
197
|
-
res.send(this.data);
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
var \u6B63\u786E\u81EA\u5B9A\u4E49\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
|
|
201
|
-
constructor(customHandler) {
|
|
202
|
-
super();
|
|
203
|
-
this.customHandler = customHandler;
|
|
204
|
-
}
|
|
205
|
-
async run(req, res) {
|
|
206
|
-
return this.customHandler(req, res);
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
var \u9519\u8BEF\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
210
|
-
\u9519\u8BEF\u7ED3\u679C\u70D9\u5370 = true;
|
|
211
|
-
};
|
|
212
|
-
var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
|
|
213
|
-
constructor(data) {
|
|
214
|
-
super();
|
|
215
|
-
this.data = data;
|
|
216
|
-
}
|
|
217
|
-
log = Global.getItem("log");
|
|
218
|
-
async run(req, res) {
|
|
219
|
-
var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
|
|
220
|
-
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
221
|
-
res.send(this.data);
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
|
|
225
258
|
// src/server/server.ts
|
|
226
259
|
var import_node_os = require("os");
|
|
227
260
|
var import_express3 = __toESM(require("express"), 1);
|
|
@@ -312,6 +345,9 @@ var \u6D4B\u8BD5 = class {
|
|
|
312
345
|
0 && (module.exports = {
|
|
313
346
|
JSON\u89E3\u6790\u63D2\u4EF6,
|
|
314
347
|
\u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6,
|
|
348
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
349
|
+
\u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C,
|
|
350
|
+
\u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C,
|
|
315
351
|
\u63A5\u53E3,
|
|
316
352
|
\u63A5\u53E3\u7C7B\u578B,
|
|
317
353
|
\u63D2\u4EF6,
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { 包装的接口类型, 包装的正确JSON结果, 包装的错误JSON结果 } from './extend/wrap-json.cjs';
|
|
1
2
|
export { 任意接口, 接口 } from './interface/interface.cjs';
|
|
2
3
|
export { 任意接口类型, 接口类型, 获得接口插件们 } from './interface/interface-type.cjs';
|
|
3
4
|
export { 任意插件, 包装插件项, 取插件内部类型, 合并插件结果, 插件, 插件项类型 } from './interface/plug.cjs';
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
接口类型
|
|
3
|
-
} from "
|
|
3
|
+
} from "./chunk-SF5Z34AP.js";
|
|
4
4
|
import {
|
|
5
5
|
正确JSON结果,
|
|
6
6
|
错误JSON结果
|
|
7
|
-
} from "
|
|
8
|
-
import "../chunk-AHCV3LQ7.js";
|
|
7
|
+
} from "./chunk-IPDMEQ3O.js";
|
|
9
8
|
|
|
10
|
-
// src/extend/
|
|
9
|
+
// src/extend/wrap-json.ts
|
|
11
10
|
import { z } from "zod";
|
|
12
11
|
var \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B = class extends \u63A5\u53E3\u7C7B\u578B {
|
|
13
12
|
constructor(path, method, \u63D2\u4EF6\u4EEC, \u6B63\u786E\u8FD4\u56DE\u7C7B\u578B, \u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B) {
|
|
@@ -36,8 +35,9 @@ var \u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEFJ
|
|
|
36
35
|
});
|
|
37
36
|
}
|
|
38
37
|
};
|
|
38
|
+
|
|
39
39
|
export {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
包装的接口类型,
|
|
41
|
+
包装的正确JSON结果,
|
|
42
|
+
包装的错误JSON结果
|
|
43
43
|
};
|
|
@@ -14,13 +14,13 @@ declare class 包装的接口类型<路径 extends string, 方法 extends 'get'
|
|
|
14
14
|
}>> {
|
|
15
15
|
constructor(path: 路径, method: 方法, 插件们: [...插件们], 正确返回类型: 正确返回类型, 错误返回类型: 错误返回类型);
|
|
16
16
|
}
|
|
17
|
-
declare class 包装的正确JSON结果<Data extends
|
|
17
|
+
declare class 包装的正确JSON结果<Data> extends __JSON__<{
|
|
18
18
|
status: 'success';
|
|
19
19
|
data: Data;
|
|
20
20
|
}> {
|
|
21
21
|
constructor(data: Data);
|
|
22
22
|
}
|
|
23
|
-
declare class 包装的错误JSON结果<Data extends
|
|
23
|
+
declare class 包装的错误JSON结果<Data> extends __JSON__$1<{
|
|
24
24
|
status: 'fail';
|
|
25
25
|
data: Data;
|
|
26
26
|
}> {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
包装的接口类型,
|
|
3
|
+
包装的正确JSON结果,
|
|
4
|
+
包装的错误JSON结果
|
|
5
|
+
} from "../chunk-ISEUOCLS.js";
|
|
6
|
+
import "../chunk-SF5Z34AP.js";
|
|
7
|
+
import "../chunk-IPDMEQ3O.js";
|
|
8
|
+
import "../chunk-AHCV3LQ7.js";
|
|
9
|
+
export {
|
|
10
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
11
|
+
\u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C,
|
|
12
|
+
\u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C
|
|
13
|
+
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { 包装的接口类型, 包装的正确JSON结果, 包装的错误JSON结果 } from './extend/wrap-json.js';
|
|
1
2
|
export { 任意接口, 接口 } from './interface/interface.js';
|
|
2
3
|
export { 任意接口类型, 接口类型, 获得接口插件们 } from './interface/interface-type.js';
|
|
3
4
|
export { 任意插件, 包装插件项, 取插件内部类型, 合并插件结果, 插件, 插件项类型 } from './interface/plug.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -13,6 +13,11 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
测试
|
|
15
15
|
} from "./chunk-I4WZG5LK.js";
|
|
16
|
+
import {
|
|
17
|
+
包装的接口类型,
|
|
18
|
+
包装的正确JSON结果,
|
|
19
|
+
包装的错误JSON结果
|
|
20
|
+
} from "./chunk-ISEUOCLS.js";
|
|
16
21
|
import {
|
|
17
22
|
接口类型
|
|
18
23
|
} from "./chunk-SF5Z34AP.js";
|
|
@@ -37,6 +42,9 @@ import {
|
|
|
37
42
|
export {
|
|
38
43
|
JSON\u89E3\u6790\u63D2\u4EF6,
|
|
39
44
|
\u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6,
|
|
45
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
46
|
+
\u5305\u88C5\u7684\u6B63\u786EJSON\u7ED3\u679C,
|
|
47
|
+
\u5305\u88C5\u7684\u9519\u8BEFJSON\u7ED3\u679C,
|
|
40
48
|
\u63A5\u53E3,
|
|
41
49
|
\u63A5\u53E3\u7C7B\u578B,
|
|
42
50
|
\u63D2\u4EF6,
|