json = json || {}含义

本文介绍了一种使用JavaScript来检查对象是否为undefined或null的方法。通过简单的if语句结合变量赋值,可以有效地避免后续代码中可能出现的TypeError。这种方式不仅简洁而且实用。

var m = obj || {}


javascript判断一个对象是undefined 或者null
直接就是if(obj)
所以那些代码就是如果传入的对象不存在,就服一个空的对象
以免出现object undefiend的错误

帮我分析。如果还需要什么代码信息跟我说 2025-11-13 18:56:03] [ERROR] validate_recv_handle():155 - [cloud-service]validate "err_code":-20107, msg:Parameter is invalid. static int validate_recv_handle(TCP_CONNECTION_T *connection) { int recv_data_len = 0; int content_len = -1; int err_code = 0; int expire = 0; const char *token_str = NULL; const char *server_url = NULL; char json_str[MAX_HTTP_RESP_JSON_LEN + 1] = {0}; VALIDATE_CTX_S *p_valid_ctx = NULL; json_object *rsp = NULL; json_object *result_obj = NULL; TOKEN_INFO *token = NULL; if ((NULL == connection) || (NULL == (p_valid_ctx = connection->param))) { p_valid_ctx->connected = FALSE; goto OUT; } token = get_dev_token(); recv_data_len = recv_http_resp(connection, &content_len, json_str, sizeof(json_str)); /* 网络环境较差,没有从 socket 中读取到数据或者Payload */ if (recv_data_len < 0 || strlen(json_str) == 0 || content_len <= 0) { ALARM_ERROR("validate failed to recv server response.\n"); p_valid_ctx->connected = FALSE; goto OUT; } rsp = json_tokener_parse(json_str); if (is_error(rsp)) { ALARM_ERROR("Buf is not JSON string.\n"); p_valid_ctx->connected = FALSE; goto OUT; } if (jso_obj_get_int(rsp, "error_code", &err_code) != OK) { ALARM_ERROR("failed to parse json \"error_code\".\n"); p_valid_ctx->connected = FALSE; goto OUT; } if (err_code != OK) { ALARM_ERROR("validate \"err_code\":%d, msg:%s.\n", err_code, jso_obj_get_string_origin(rsp, "msg")); if (err_code == JSON_TOKEN_ERROR || err_code == JSON_TOKEN_EXPIRED) { TOKEN_INFO *token = get_dev_token(); set_dev_token_invalid(token); } p_valid_ctx->connected = FALSE; goto OUT; } result_obj = jso_obj_get(rsp, "result"); if (!result_obj) { ALARM_ERROR("failed to parse json \"result\".\n"); p_valid_ctx->connected = FALSE; goto OUT; } if (jso_obj_get_int(result_obj, "expiresIn", &expire) != OK) { ALARM_ERROR("failed to parse json \"expiresIn\".\n"); p_valid_ctx->connected = FALSE; goto OUT; } if ((token_str = jso_obj_get_string_origin(result_obj, "deviceToken")) == NULL) { ALARM_ERROR("failed to parse json \"deviceToken\".\n"); p_valid_ctx->connected = FALSE; goto OUT; } if ((server_url = jso_obj_get_string_origin(result_obj, "serverUrl")) == NULL) { ALARM_ERROR("failed to parse json \"serverUrl\".\n"); p_valid_ctx->connected = FALSE; goto OUT; } update_dev_token(token, server_url, token_str, expire); OUT: if (rsp) { jso_free_obj(rsp); } validate_connect_close(connection); return OK; } /* 获取json对象obj中关键字为key的对象中的字符串值(未解码), 如果json对象不是字符串类型返回空 */ const char *jso_obj_get_string_origin(JSON_OBJPTR obj, const char *key) { JSON_OBJPTR obj_string = NULL; if ((obj == NULL) || (key == NULL) || (FALSE == jso_is_obj(obj))) { return NULL; } obj_string = json_object_object_get(obj, key); if (NULL == obj_string) { return NULL; } if (TRUE == json_object_is_type(obj_string, json_type_string)) { return json_object_get_string(obj_string); } return NULL; }
最新发布
11-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值