1 {<section id="cs_t1client.description" >}
2 #應用 a00 樣板自動產生(Version:2)
3 #+ Version..: T100-ERP-1.01.00(SD版次:4,PR版次:4) Build-000143
4 #+
5 #+ Filename...: cs_t1client
6 #+ Description: T1雲
7 #+ Creator....: tiptop(2017-07-14 14:17:17)
8 #+ Modifier...: 00000() -SD/PR-
9
10 {</section>}
11
12 {<section id="cs_t1client.global" >}
13 #應用 p00 樣板自動產生(Version:3)
14 #add-point:註解編寫項目
15
16 #end add-point
17
18 IMPORT os
19 #add-point:增加匯入項目
20 IMPORT util
21 IMPORT xml
22 IMPORT com
23 #end add-point
24
25 SCHEMA ds
26
27 GLOBALS "../../cfg/top_global.inc"
28 #add-point:增加匯入變數檔
29
30 #end add-point
31
32 {</section>}
33
34 {<section id="cs_t1client.free_style_variable" >}
35 #add-point:free_style模組變數(Module Variable)
36
37 #end add-point
38
39 {</section>}
40
41 {<section id="cs_t1client.global_variable" >}
42 #add-point:自定義模組變數(Module Variable)
43
44 #end add-point
45
46 {</section>}
47
48 {<section id="cs_t1client.other_dialog" >}
49
50
51 {</section>}
52
53 {<section id="cs_t1client.other_function" readonly="Y" >}
54
55 ################################################################################
56 # Descriptions...: 通过账号密码获取令牌
57 # Memo...........:
58 # Usage..........: CALL cs_t1client_get_token()
59 # RETURNING r_success,r_token
60 # Input parameter:
61 # Return code....: r_success 成功否
62 # : r_token 回传的令牌
63 # Date & Author..: 日期 By 作者
64 # Modify.........:
65 ################################################################################
66 PUBLIC FUNCTION cs_t1client_get_token()
67 ##此函数给作业czzi001调用,其他别调用,避免造成token与数据表的不一致
68 DEFINE lb_result BOOLEAN
69 DEFINE ls_resp STRING # 應用服務回傳XML
70 DEFINE ls_url STRING
71 DEFINE r_token STRING
72
73 LET ls_url = "http://***.***.*.*.***:8080",
74 "/api/getToken",
75 "?user=*********&password=**********&appid=***********&clientType=pc"
76 DISPLAY "URL=\n" , ls_url , "\n"
77
78 CALL cs_t1client_http_posturl(ls_url) RETURNING lb_result,ls_resp
79 IF lb_result=TRUE THEN
80 #解析JSON
81 CALL cs_t1client_parse_json(ls_resp) RETURNING r_token
82 DISPLAY ls_resp #显示一下回传的JSON
83 DISPLAY r_token
84 RETURN r_token
85 ELSE
86 # 顯示錯誤訊息
87 DISPLAY ls_resp
88 RETURN 0
89 END IF
90
91 RETURN 0
92
93
94
95 END FUNCTION
96
97 ################################################################################
98 # Descriptions...: 提交url
99 # Memo...........:
100 # Usage..........: CALL cs_t1client_http_posturl(p_url)
101 # RETURNING r_body
102 # Input parameter: p_url url内容
103 # Return code....: r_body body内容
104 # Date & Author..: 日期 By 作者
105 # Modify.........:
106 ################################################################################
107 PUBLIC FUNCTION cs_t1client_http_posturl(p_url)
108 DEFINE l_http_req com.HTTPRequest
109 DEFINE l_http_res com.HTTPResponse
110 DEFINE p_url STRING
111 DEFINE l_succ BOOLEAN
112 DEFINE l_str STRING
113 DEFINE l_body STRING
114
115
116 # initial parameter
117 LET l_succ = FALSE
118 LET l_str = ""
119
120 TRY
121 # 設置 HttpRequest START
122 LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件
123 CALL l_http_req.setTimeOut(60) # 設定 request timeout
124 CALL l_http_req.setMethod("GET") # 設定Http method
125 CALL l_http_req.setCharset("UTF-8") # 設定編碼
126 CALL l_http_req.doRequest() # send request
127
128 LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件
129 IF l_http_res.getStatusCode() != 200 THEN
130 # server 回傳報錯
131 LET l_succ = FALSE
132 LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription()
133 ELSE
134 # 取得 server 回傳 body content string
135 LET l_succ = TRUE
136 LET l_str = l_http_res.getTextResponse() # 取得 response body字串
137 #DISPLAY l_str
138 END IF
139 CATCH
140 #get error from genero
141 LET l_succ = FALSE
142 LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")"
143 END TRY
144
145 # 回傳結果
146 RETURN l_succ,l_str
147
148 END FUNCTION
149
150 ################################################################################
151 # Descriptions...: 解析回传的json
152 # Memo...........:
153 # Usage..........: CALL cs_t1client_parse_json(p_str)
154 # RETURNING
155 # Input parameter: p_str json 字符串
156 # :
157 # Return code....:
158 # Date & Author..: 日期 By 作者
159 # Modify.........:
160 ################################################################################
161 PUBLIC FUNCTION cs_t1client_parse_json(p_str)
162 DEFINE p_str STRING
163 DEFINE l_json util.JSONObject
164 DEFINE r_token STRING
165 DEFINE i INTEGER
166 DISPLAY p_str
167 LET l_json = util.JSONObject.parse(p_str)
168
169 FOR i=1 TO l_json.getLength()
170 DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i))
171 IF l_json.name(i) = "token" THEN
172 LET r_token = l_json.get(l_json.name(i))
173 END IF
174 END FOR
175 RETURN r_token
176 END FUNCTION
177
178 ################################################################################
179 # Descriptions...: 描述说明
180 # Memo...........:
181 # Usage..........: CALL cs_t1client_get_create(p_type,p_token)
182 # RETURNING 回传参数
183 # Input parameter: p_type 类型
184 # : p_token 令牌
185 # Return code....: 数据包(STRING类的JSON)
186 # Date & Author..: 日期 By 作者
187 # Modify.........:
188 ################################################################################
189 PUBLIC FUNCTION cs_t1client_get_create(p_type,p_token)
190 DEFINE p_type LIKE type_t.chr1000
191 DEFINE p_token STRING
192 DEFINE lb_result BOOLEAN
193 DEFINE ls_resp STRING # 應用服務回傳XML
194 DEFINE ls_url STRING
195 DEFINE r_token STRING
196 DEFINE l_json util.JSONObject
197
198
199 LET ls_url = "http://***.***.*.*.***:8080",
200 "/apiData/getCreate",
201 "?token=",p_token,"&itemType=",p_type,""
202 DISPLAY "URL=\n" , ls_url , "\n"
203
204 CALL cs_t1client_http_get(ls_url) RETURNING lb_result,ls_resp
205 IF lb_result=TRUE THEN
206 #解析JSON
207 LET l_json = util.JSONObject.parse(ls_resp)
208 CALL cs_t1client_http_prasejsontest(l_json)
209 #CALL cs_t1client_parse_json(ls_resp) RETURNING r_token
210 DISPLAY ls_resp #显示一下回传的JSON
211 DISPLAY ls_resp
212 RETURN ls_resp
213 ELSE
214 # 顯示錯誤訊息
215 DISPLAY ls_resp
216 RETURN 0
217 END IF
218
219 RETURN 0
220
221
222
223 END FUNCTION
224
225 ################################################################################
226 # Descriptions...: 描述说明
227 # Memo...........:
228 # Usage..........: CALL s_aooi150_ins (传入参数)
229 # RETURNING 回传参数
230 # Input parameter: 传入参数变量1 传入参数变量说明1
231 # : 传入参数变量2 传入参数变量说明2
232 # Return code....: 回传参数变量1 回传参数变量说明1
233 # : 回传参数变量2 回传参数变量说明2
234 # Date & Author..: 日期 By 作者
235 # Modify.........:
236 ################################################################################
237 PUBLIC FUNCTION cs_t1client_modify_data(p_str,p_itemcode,p_itemname,p_createtype,p_remark)
238 DEFINE p_str STRING
239 DEFINE l_json util.JSONObject
240 DEFINE r_str STRING
241 DEFINE rec RECORD
242 value STRING,
243 text STRING,
244 css util.JSONObject
245 END RECORD
246 DEFINE p_itemcode LIKE type_t.chr1000
247 DEFINE p_itemname LIKE type_t.chr1000
248 DEFINE p_createtype LIKE type_t.chr1000
249 DEFINE p_remark LIKE type_t.chr1000
250 DEFINE i,j INTEGER
251 DISPLAY p_str
252 LET l_json = util.JSONObject.parse(p_str)
253 FOR i=1 TO l_json.getLength()
254 #DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i))
255 IF l_json.name(i) = "ItemCode" THEN
256 LET rec.value = p_itemcode
257 LET rec.text = p_itemcode
258 LET rec.css = util.JSONObject.parse("{}")
259 CALL l_json.put(l_json.name(i),rec)
260 END IF
261 IF l_json.name(i) = "ItemName" THEN
262 LET rec.value = p_itemname
263 LET rec.text = p_itemname
264 LET rec.css = util.JSONObject.parse("{}")
265 CALL l_json.put(l_json.name(i),rec)
266 END IF
267 IF l_json.name(i) = "CreateType" THEN
268 LET rec.value = p_createtype
269 LET rec.text = p_createtype
270 LET rec.css = util.JSONObject.parse("{}")
271 CALL l_json.put(l_json.name(i),rec)
272 END IF
273 IF l_json.name(i) = "Remark" THEN
274 LET rec.value = p_remark
275 LET rec.text = p_remark
276 LET rec.css = util.JSONObject.parse("{}")
277 CALL l_json.put(l_json.name(i),rec)
278 END IF
279 END FOR
280
281 LET r_str = l_json.toString()
282 RETURN r_str
283 END FUNCTION
284
285 ################################################################################
286 # Descriptions...: 描述说明
287 # Memo...........:
288 # Usage..........: CALL s_aooi150_ins (传入参数)
289 # RETURNING 回传参数
290 # Input parameter: 传入参数变量1 传入参数变量说明1
291 # : 传入参数变量2 传入参数变量说明2
292 # Return code....: 回传参数变量1 回传参数变量说明1
293 # : 回传参数变量2 回传参数变量说明2
294 # Date & Author..: 日期 By 作者
295
T100——接口代码记录,jsonArray和json
最新推荐文章于 2023-11-29 23:15:47 发布
本文记录了接口开发中遇到的jsonArray和json处理经验,详细阐述了如何解析这两种数据结构,适用于后端开发人员进行接口数据处理的学习与参考。
摘要由CSDN通过智能技术生成