1 /*
2 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "cJsonNapiH/cjsonnapi.h"
17
getAddfalsetoobjTypeOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonOut)18 napi_value getAddfalsetoobjTypeOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonOut)
19 {
20 napi_status status;
21 const napi_extended_error_info *extended_error_info;
22 const char *tag = "[KH545_cJSON_AddFalseToObject]";
23 napi_value typeOut;
24 /* [NAPI_GEN]: 返回值是int32_t类型时,napi_create_int32 创建一个包含32位整数(int32_t)的js数值(Number)对象
25 * env: 当前环境的句柄
26 * value: 要准换成js数值的int32_t的值,这里以传入1为例,用例新增业务代码时可根据自身需求修改
27 * result: 指向napi_value的指针,这个指针会被设置为新创建的js数值对象
28 */
29 status = napi_create_int32(env, jsonOut->type, &typeOut);
30 if (status != napi_ok) {
31 getErrMessage(status, env, extended_error_info, "napi_create_int32", tag);
32 return nullptr;
33 }
34 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
35 * env: 当前环境的句柄
36 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
37 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
38 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
39 */
40 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "type", typeOut);
41 if (status != napi_ok) {
42 /* [NAPI_GEN]: 错误处理*/
43 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
44 return nullptr;
45 }
46 return cJSON_AddFalseToObjectOut;
47 }
48
getAddfalsetoobjValuesintOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonOut)49 napi_value getAddfalsetoobjValuesintOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonOut)
50 {
51 napi_status status;
52 const napi_extended_error_info *extended_error_info;
53 const char *tag = "[KH545_cJSON_AddFalseToObject]";
54
55 napi_value valueintOut;
56 /* [NAPI_GEN]: 返回值是int32_t类型时,napi_create_int32 创建一个包含32位整数(int32_t)的js数值(Number)对象
57 * env: 当前环境的句柄
58 * value: 要准换成js数值的int32_t的值,这里以传入1为例,用例新增业务代码时可根据自身需求修改
59 * result: 指向napi_value的指针,这个指针会被设置为新创建的js数值对象
60 */
61 status = napi_create_int32(env, jsonOut->valueint, &valueintOut);
62 if (status != napi_ok) {
63 getErrMessage(status, env, extended_error_info, "napi_create_int32", tag);
64 return nullptr;
65 }
66 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
67 * env: 当前环境的句柄
68 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
69 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
70 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
71 */
72 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "valueint", valueintOut);
73 if (status != napi_ok) {
74 /* [NAPI_GEN]: 错误处理*/
75 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
76 return nullptr;
77 }
78
79 return cJSON_AddFalseToObjectOut;
80 }
81
getAddfalsetoobjValuesdoubleOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonOut)82 napi_value getAddfalsetoobjValuesdoubleOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonOut)
83 {
84 napi_status status;
85 const napi_extended_error_info *extended_error_info;
86 const char *tag = "[KH545_cJSON_AddFalseToObject]";
87 napi_value valuedoubleOut;
88 /* [NAPI_GEN]: 返回值是double类型时,napi_create_double 创建一个包含双精度浮点数的js数值(Number)对象
89 * env: 当前环境的句柄
90 * value: 要传递给js的双精度浮点数值,这里以传入1.0为例,用例新增业务代码时可根据自身需求修改
91 * result: 指向napi_value的指针,这个指针会被设置为新创建的js数值对象
92 */
93 status = napi_create_double(env, jsonOut->valuedouble, &valuedoubleOut);
94 if (status != napi_ok) {
95 getErrMessage(status, env, extended_error_info, "napi_create_double", tag);
96 return nullptr;
97 }
98 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
99 * env: 当前环境的句柄
100 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
101 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
102 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
103 */
104 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "valuedouble", valuedoubleOut);
105 if (status != napi_ok) {
106 /* [NAPI_GEN]: 错误处理*/
107 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
108 return nullptr;
109 }
110 return cJSON_AddFalseToObjectOut;
111 }
112
getAddfalsetoobjValuestringOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonObj)113 napi_value getAddfalsetoobjValuestringOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonObj)
114 {
115 napi_status status;
116 const napi_extended_error_info *extended_error_info;
117 const char *tag = "[KH545_cJSON_AddFalseToObject]";
118 napi_value valuestringOut;
119 /* [NAPI_GEN]:
120 * 返回值是字符串时,napi_create_string_utf8用于在原生代码中创建一个新的js字符串。这个函数会根据提供的UTF-8编码的字符串创建一个等价的js字符串
121 * env: 当前环境的句柄
122 * str: 指向以null结尾的UTF-8编码的C字符串的指针,这里以valuestring举例,用户可根据需求修改
123 * length:
124 * 字符串的长度,可以是具体的字节数,或者使用特殊的值NAPI_AUTO_LENGTH来让函数自己计算长度(假定字符串以null结尾)
125 * result: 指向napi_value的指针,函数执行成功后这个指针将指向新创建的js字符串
126 */
127 status = napi_create_string_utf8(env, jsonObj->valuestring == NULL ? "" : jsonObj->valuestring,
128 NAPI_AUTO_LENGTH, &valuestringOut);
129 if (status != napi_ok) {
130 /*错误处理*/
131 getErrMessage(status, env, extended_error_info, "napi_create_string_utf8", tag);
132 return nullptr;
133 }
134 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
135 * env: 当前环境的句柄
136 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
137 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
138 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
139 */
140 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "valuestring", valuestringOut);
141 if (status != napi_ok) {
142 /* [NAPI_GEN]: 错误处理*/
143 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
144 return nullptr;
145 }
146 return cJSON_AddFalseToObjectOut;
147 }
148
getAddfalsetoobjStringOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonOut)149 napi_value getAddfalsetoobjStringOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonOut)
150 {
151 napi_status status;
152 const napi_extended_error_info *extended_error_info;
153 const char *tag = "[KH545_cJSON_AddFalseToObject]";
154 napi_value stringOut;
155 /* [NAPI_GEN]:
156 * 返回值是字符串时,napi_create_string_utf8用于在原生代码中创建一个新的js字符串。这个函数会根据提供的UTF-8编码的字符串创建一个等价的js字符串
157 * env: 当前环境的句柄
158 * str: 指向以null结尾的UTF-8编码的C字符串的指针,这里以string举例,用户可根据需求修改
159 * length:
160 * 字符串的长度,可以是具体的字节数,或者使用特殊的值NAPI_AUTO_LENGTH来让函数自己计算长度(假定字符串以null结尾)
161 * result: 指向napi_value的指针,函数执行成功后这个指针将指向新创建的js字符串
162 */
163 status = napi_create_string_utf8(env, jsonOut->string == NULL ? "" : jsonOut->string, NAPI_AUTO_LENGTH, &stringOut);
164 if (status != napi_ok) {
165 /*错误处理*/
166 getErrMessage(status, env, extended_error_info, "napi_create_string_utf8", tag);
167 return nullptr;
168 }
169 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
170 * env: 当前环境的句柄
171 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
172 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
173 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
174 */
175 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "string", stringOut);
176 if (status != napi_ok) {
177 /* [NAPI_GEN]: 错误处理*/
178 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
179 return nullptr;
180 }
181 return cJSON_AddFalseToObjectOut;
182 }
183
getAddfalsetoobjNextOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonObj)184 napi_value getAddfalsetoobjNextOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonObj)
185 {
186 napi_status status;
187 const napi_extended_error_info *extended_error_info;
188 const char *tag = "[KH545_cJSON_AddFalseToObject]";
189 napi_value nextOut;
190 /* [NAPI_GEN]: 返回值是对象时,需要使用napi_create_object创建一个js的对象与js代码交互
191 * env: 当前环境的句柄
192 * result: 一个napi_value的指针,该指针将被设置为新创建的js对象
193 */
194 status = napi_create_object(env, &nextOut);
195 if (status != napi_ok) {
196 getErrMessage(status, env, extended_error_info, "napi_create_object", tag);
197 return nullptr;
198 }
199
200 // 给jsonObj->next赋值
201 if (jsonObj == NULL) {
202 return NULL;
203 }
204 if (jsonObj->next != NULL) {
205 nextOut = getAddfalsetoobjTypeOut(env, nextOut, jsonObj->next);
206 nextOut = getAddfalsetoobjValuesdoubleOut(env, nextOut, jsonObj->next);
207 nextOut = getAddfalsetoobjValuesintOut(env, nextOut, jsonObj->next);
208 nextOut = getAddfalsetoobjValuestringOut(env, nextOut, jsonObj->next);
209 nextOut = getAddfalsetoobjStringOut(env, nextOut, jsonObj->next);
210 if (jsonObj->next->next != NULL) {
211 cJSON *nextNext = jsonObj->next->next;
212 if (nextNext != NULL) {
213 nextOut = getAddfalsetoobjNextOut(env, nextOut, jsonObj->next);
214 }
215 }
216 }
217
218 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
219 * env: 当前环境的句柄
220 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
221 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
222 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
223 */
224 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "next", nextOut);
225 if (status != napi_ok) {
226 /* [NAPI_GEN]: 错误处理*/
227 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
228 return nullptr;
229 }
230 return cJSON_AddFalseToObjectOut;
231 }
232
getJsonobjfalseChildOut(napi_env env,napi_value childOut,cJSON * jsonObj)233 napi_value getJsonobjfalseChildOut(napi_env env, napi_value childOut, cJSON *jsonObj)
234 {
235 if (jsonObj->child != NULL) {
236 childOut = getAddfalsetoobjTypeOut(env, childOut, jsonObj->child);
237 childOut = getAddfalsetoobjValuesdoubleOut(env, childOut, jsonObj->child);
238 childOut = getAddfalsetoobjValuesintOut(env, childOut, jsonObj->child);
239 childOut = getAddfalsetoobjValuestringOut(env, childOut, jsonObj->child);
240 childOut = getAddfalsetoobjStringOut(env, childOut, jsonObj->child);
241 if (jsonObj->child->next != NULL) {
242 cJSON *childNext = jsonObj->child->next;
243 if (childNext != NULL) {
244 childOut = getAddfalsetoobjNextOut(env, childOut, jsonObj->child);
245 }
246 }
247 }
248 return childOut;
249 }
250
getAddfalsetoobjChildOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonObj)251 napi_value getAddfalsetoobjChildOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonObj)
252 {
253 napi_status status;
254 const napi_extended_error_info *extended_error_info;
255 const char *tag = "[KH545_cJSON_AddFalseToObject]";
256 napi_value childOut;
257 /* [NAPI_GEN]: 返回值是对象时,需要使用napi_create_object创建一个js的对象与js代码交互
258 * env: 当前环境的句柄
259 * result: 一个napi_value的指针,该指针将被设置为新创建的js对象
260 */
261 status = napi_create_object(env, &childOut);
262 if (status != napi_ok) {
263 getErrMessage(status, env, extended_error_info, "napi_create_object", tag);
264 return nullptr;
265 }
266 // 给jsonObj->child赋值
267 if (jsonObj != NULL) {
268 childOut = getJsonobjfalseChildOut(env, childOut, jsonObj);
269 }
270 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
271 * env: 当前环境的句柄
272 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
273 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
274 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
275 */
276 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "child", childOut);
277 if (status != napi_ok) {
278 /* [NAPI_GEN]: 错误处理*/
279 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
280 return nullptr;
281 }
282 return cJSON_AddFalseToObjectOut;
283 }
284
getAddfalsetoobjPrevOut(napi_env env,napi_value cJSON_AddFalseToObjectOut,cJSON * jsonObj)285 napi_value getAddfalsetoobjPrevOut(napi_env env, napi_value cJSON_AddFalseToObjectOut, cJSON *jsonObj)
286 {
287 napi_status status;
288 const napi_extended_error_info *extended_error_info;
289 const char *tag = "[KH545_cJSON_AddFalseToObject]";
290 napi_value prevOut;
291 /* [NAPI_GEN]: 返回值是对象时,需要使用napi_create_object创建一个js的对象与js代码交互
292 * env: 当前环境的句柄
293 * result: 一个napi_value的指针,该指针将被设置为新创建的js对象
294 */
295 status = napi_create_object(env, &prevOut);
296 if (status != napi_ok) {
297 getErrMessage(status, env, extended_error_info, "napi_create_object", tag);
298 return nullptr;
299 }
300 /* [NAPI_GEN]: 返回值是对象时,将native侧的对象的属性和值依次塞入napi_create_object创建出的对象,最终将该对象返回js
301 * env: 当前环境的句柄
302 * object: 要设置属性的js对象,该对象是由上文napi_create_object创建的
303 * utf8name: 属性的名称,是一个以UTF-8编码的字符串
304 * value: 与属性名称关联的值,这个值可以是任何js类型(如一个数值、字符串、另一个对象等)
305 */
306 status = napi_set_named_property(env, cJSON_AddFalseToObjectOut, "prev", prevOut);
307 if (status != napi_ok) {
308 /* [NAPI_GEN]: 错误处理*/
309 getErrMessage(status, env, extended_error_info, "napi_set_named_property", tag);
310 return nullptr;
311 }
312 return cJSON_AddFalseToObjectOut;
313 }
314
getAddfalsetoobjInfo(napi_env env,napi_value paramIn)315 char *getAddfalsetoobjInfo(napi_env env, napi_value paramIn)
316 {
317 napi_status status;
318 const napi_extended_error_info *extended_error_info;
319 const char *tag = "[KH545_cJSON_AddFalseToObject]";
320 /* [NAPI_GEN]: 从args数组中获取入参 */
321 napi_valuetype valuetypename;
322 /* [NAPI_GEN]: 获取入参类型,第1个入参
323 * env: N-API环境的句柄,表示当前的上下文
324 * value: 要检查类型的js值
325 * result: 是一个指针,指向napi_valuetype枚举的值,函数会将结果存储在这里
326 */
327 status = napi_typeof(env, paramIn, &valuetypename);
328 if (status != napi_ok) {
329 getErrMessage(status, env, extended_error_info, "napi_typeof", tag);
330 return nullptr;
331 }
332 size_t strSize1 = 0;
333 /* [NAPI_GEN]: napi_get_value_string_utf8用于将Js字符串转换为UTF-8编码的C字符串
334 * env: N-API环境的句柄,表示当前的上下文
335 * value: 要转换的JavaScript字符串
336 * buf: 用于存储结果的字符数组的指针
337 * bufsize: 缓冲区大小,以字节为单位
338 * result: 转换后的字符串的字节长度(不包括空终止符)。若干buf是NULL,则返回所需的缓冲区大小(包括空终止符)
339 */
340 /* [NAPI_GEN]: buf参数是NULL时,用于获取所需缓冲区大小*/
341 status = napi_get_value_string_utf8(env, paramIn, NULL, 0, &strSize1);
342 if (status != napi_ok) {
343 getErrMessage(status, env, extended_error_info, "get value string", tag);
344 return nullptr;
345 }
346 char *nameIn = new char[strSize1 + 1];
347 /* [NAPI_GEN]: 用于获取字符串*/
348 status = napi_get_value_string_utf8(env, paramIn, nameIn, strSize1 + 1, &strSize1);
349 if (status != napi_ok) {
350 getErrMessage(status, env, extended_error_info, "get value string", tag);
351 delete[] nameIn;
352 return nullptr;
353 }
354
355 return nameIn;
356 }
357
358 /* [NAPI_GEN]:对应cJSON.h中: CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name);
359 * 的napi方法,
360 * 输入:一个cJSON对象,需要添加的item名字(字符串)
361 * 输出:添加item后的cJSON对象
362 */
KH545_cJSON_AddFalseToObject(napi_env env,napi_callback_info info)363 napi_value KH545_cJSON_AddFalseToObject(napi_env env, napi_callback_info info)
364 {
365 napi_status status;
366 /* [NAPI_GEN]: Node.js在其N-API中用来提供错误的扩展信息的结构体,结构体包含以下字段
367 * error_message: 一个指向错误详细字符串的指针,提供了关于错误的文本描述
368 * engin_reserved: 一个保留给Js引擎使用的指针
369 * error_code: 错误码,指示了错误的种类,比如napi_pending_exception表示有一个JavaScript异常未被清理。
370 * engine_error_code:一个引擎特定的错误码,为引擎实现保留,具体含义依赖于使用的JavaScript引擎。
371 * error_message_len:错误消息字符串的长度。
372 */
373 const napi_extended_error_info *extended_error_info;
374 /* [NAPI_GEN]: tag: 日志打印标签*/
375 const char *tag = "[KH545_cJSON_AddFalseToObject]";
376 /* [NAPI_GEN]: get function param in*/
377 /* [NAPI_GEN]: argc:js传入的参数个数 */
378 size_t argc = PARAMS2;
379 /* [NAPI_GEN]: args: 一个数组,保存js传入的参数 */
380 napi_value args[PARAMS2] = {nullptr};
381 /* [NAPI_GEN]: napi_get_cb_info用于获取JS调用该函数时所传递的参数、接收参数的个数以及'this'的值
382 * env: 当前环境的句柄,代表当前的Node.js环境
383 * info: 回调信息句柄,代表当前回调的上下文
384 * argc: 指向size_t的指针,最初应包含可接受的最大参数数量,函数返回时,它将包含实际传递的参数数量
385 * args: 一个足够大的数组,用于接收传递给回调函数的所有js参数。数组的大小应至少与argc传入的值一样大。
386 * this_arg: 如果不是NULL,则返回js回调中this的值
387 * data: 如果不是NULL,则返回与回调函数关联的任何可选数据。通常用于传递在创建函数时指定的静态数据
388 */
389 status = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
390 if (status != napi_ok) {
391 /* [NAPI_GEN]: 错误处理*/
392 getErrMessage(status, env, extended_error_info, "napi_get_cb_info", tag);
393 return nullptr;
394 }
395 napi_value paramIn = args[PARAMS1];
396 char *nameIn = getAddfalsetoobjInfo(env, paramIn);
397
398 // Todo: add business logic. 在这前后代码为框架所生成
399 cJSON *jsonOut = nullptr;
400 cJSON *jsonObj = cJSON_CreateObject();
401 // init 传入的obj 初始化
402 napi_value cjsonObj = args[PARAMS0];
403 jsonObj = initCJSON_Object(env, cjsonObj, jsonObj, tag);
404 // add false to jsonObj
405 jsonOut = cJSON_AddFalseToObject(jsonObj, nameIn);
406 // 打印 jsonObj 值
407 char *jsonResStr = cJSON_Print(jsonOut);
408 if (jsonResStr != NULL) {
409 OH_LOG_Print(LOG_APP, LOG_INFO, LOG_PRINT_DOMAIN, "KH545_cJSON_AddFalseToObject", "jsonResStr: %s", jsonResStr);
410 }
411
412 delete[] nameIn;
413 /* [NAPI_GEN]: function return value*/
414 napi_value cJSON_AddFalseToObjectOut;
415 /* [NAPI_GEN]: 返回值是对象时,需要使用napi_create_object创建一个js的对象与js代码交互
416 * env: 当前环境的句柄
417 * result: 一个napi_value的指针,该指针将被设置为新创建的js对象
418 */
419 status = napi_create_object(env, &cJSON_AddFalseToObjectOut);
420 if (status != napi_ok) {
421 getErrMessage(status, env, extended_error_info, "napi_create_object", tag);
422 return nullptr;
423 }
424
425 cJSON_AddFalseToObjectOut = getAddfalsetoobjChildOut(env, cJSON_AddFalseToObjectOut, jsonObj);
426 cJSON_AddFalseToObjectOut = getAddfalsetoobjNextOut(env, cJSON_AddFalseToObjectOut, jsonObj);
427 cJSON_AddFalseToObjectOut = getAddfalsetoobjPrevOut(env, cJSON_AddFalseToObjectOut, jsonObj);
428 cJSON_AddFalseToObjectOut = getAddfalsetoobjTypeOut(env, cJSON_AddFalseToObjectOut, jsonObj);
429 cJSON_AddFalseToObjectOut = getAddfalsetoobjValuesdoubleOut(env, cJSON_AddFalseToObjectOut, jsonObj);
430 cJSON_AddFalseToObjectOut = getAddfalsetoobjValuesintOut(env, cJSON_AddFalseToObjectOut, jsonObj);
431 cJSON_AddFalseToObjectOut = getAddfalsetoobjValuestringOut(env, cJSON_AddFalseToObjectOut, jsonObj);
432 cJSON_AddFalseToObjectOut = getAddfalsetoobjStringOut(env, cJSON_AddFalseToObjectOut, jsonObj);
433
434 cJSON_Delete(jsonObj);
435 return cJSON_AddFalseToObjectOut;
436 }
437