cbool cjson_set_bool_idx(cjson* pJson, int idx, cbool b) { if(!pJson) { return 0; } cJSON* lp_dest_json = pJson->child; if(!lp_dest_json || lp_dest_json->type != cJSON_Array) { return 0; } if(cJSON_GetArrayItem(lp_dest_json, idx)!= NULL) { cJSON_ReplaceItemInArray(lp_dest_json, idx, (b ? cJSON_CreateTrue() : cJSON_CreateFalse()) ); } else { cJSON_AddItemToArray(lp_dest_json, (b ? cJSON_CreateTrue() : cJSON_CreateFalse()) ); } return 1; }
cbool cjson_set_bool(cjson* pJson, const char* name, cbool b) { if(!pJson || !name) { return 0; } cJSON* lp_dest_json = pJson->child; if(!lp_dest_json ||lp_dest_json->type != cJSON_Object) { return 0; } if(cJSON_GetObjectItem(lp_dest_json, name)!= NULL) { cJSON_ReplaceItemInObject(lp_dest_json, name, (b ? cJSON_CreateTrue() : cJSON_CreateFalse()) ); } else { cJSON_AddItemToObject(lp_dest_json, name, (b ? cJSON_CreateTrue() : cJSON_CreateFalse()) ); } return 1; }
void JSONItem::arrayAppend(const JSONItem& element) { if(!_json) { return; } cJSON* p = NULL; switch(element.getType()) { case cJSON_False: p = cJSON_CreateFalse(); break; case cJSON_True: p = cJSON_CreateTrue(); break; case cJSON_NULL: p = cJSON_CreateNull(); break; case cJSON_Number: p = cJSON_CreateNumber(element.getValue().GetDouble()); break; case cJSON_String: p = cJSON_CreateString(element.getValue().GetString().mb_str(wxConvUTF8).data()); break; case cJSON_Array: case cJSON_Object: p = element._json; break; } if(p) { cJSON_AddItemToArray(_json, p); } }
cJSON *Value::toCJSON(const Value &value) { switch (value.type()) { case Value::Type_Boolean: return value.toBool() ? cJSON_CreateTrue() : cJSON_CreateFalse(); case Value::Type_Date: case Value::Type_Integer: return cJSON_CreateNumber(value.toInteger()); case Value::Type_Double: return cJSON_CreateNumber(value.toDouble()); case Value::Type_String: return cJSON_CreateString(value.toString().constData()); case Value::Type_List: { cJSON *array = cJSON_CreateArray(); for (const auto &v : *value.listPtr()) cJSON_AddItemToArray(array, toCJSON(v)); return array; } case Value::Type_Map: { cJSON *object = cJSON_CreateObject(); for (const auto &v : *value.mapPtr()) cJSON_AddItemToObject(object, v.first.constData(), v.second.toCJSON(v.second)); return object; } case Value::Type_Invalid: break; case Value::Type_Undefined: break; case Value::Type_Custom: if (std::shared_ptr<Value::Custom> custom = value.toCustom()) { cJSON *ret = cJSON_CreateString(custom->toString().constData()); if (ret) { ret->type = cJSON_RawString; return ret; } } break; } return cJSON_CreateNull(); }
void conference_event_adv_la(conference_obj_t *conference, conference_member_t *member, switch_bool_t join) { //if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) { switch_channel_set_flag(member->channel, CF_VIDEO_REFRESH_REQ); switch_core_media_gen_key_frame(member->session); //} if (conference && conference->la && member->session && !switch_channel_test_flag(member->channel, CF_VIDEO_ONLY)) { cJSON *msg, *data; const char *uuid = switch_core_session_get_uuid(member->session); const char *cookie = switch_channel_get_variable(member->channel, "event_channel_cookie"); const char *event_channel = cookie ? cookie : uuid; switch_event_t *variables; switch_event_header_t *hp; msg = cJSON_CreateObject(); data = json_add_child_obj(msg, "pvtData", NULL); cJSON_AddItemToObject(msg, "eventChannel", cJSON_CreateString(event_channel)); cJSON_AddItemToObject(msg, "eventType", cJSON_CreateString("channelPvtData")); cJSON_AddItemToObject(data, "action", cJSON_CreateString(join ? "conference-liveArray-join" : "conference-liveArray-part")); cJSON_AddItemToObject(data, "laChannel", cJSON_CreateString(conference->la_event_channel)); cJSON_AddItemToObject(data, "laName", cJSON_CreateString(conference->la_name)); cJSON_AddItemToObject(data, "role", cJSON_CreateString(conference_utils_member_test_flag(member, MFLAG_MOD) ? "moderator" : "participant")); cJSON_AddItemToObject(data, "chatID", cJSON_CreateString(conference->chat_id)); cJSON_AddItemToObject(data, "canvasCount", cJSON_CreateNumber(conference->canvas_count)); if (conference_utils_member_test_flag(member, MFLAG_SECOND_SCREEN)) { cJSON_AddItemToObject(data, "secondScreen", cJSON_CreateTrue()); } if (conference_utils_member_test_flag(member, MFLAG_MOD)) { cJSON_AddItemToObject(data, "modChannel", cJSON_CreateString(conference->mod_event_channel)); } cJSON_AddItemToObject(data, "chatChannel", cJSON_CreateString(conference->chat_event_channel)); switch_core_get_variables(&variables); for (hp = variables->headers; hp; hp = hp->next) { if (!strncasecmp(hp->name, "conference_verto_", 17)) { char *var = hp->name + 17; if (var) { cJSON_AddItemToObject(data, var, cJSON_CreateString(hp->value)); } } } switch_event_destroy(&variables); switch_event_channel_broadcast(event_channel, &msg, "mod_conference", conference_globals.event_channel_id); if (cookie) { switch_event_channel_permission_modify(cookie, conference->la_event_channel, join); switch_event_channel_permission_modify(cookie, conference->mod_event_channel, join); switch_event_channel_permission_modify(cookie, conference->chat_event_channel, join); } } }
// lua_to_json inline cJSON* lua_to_json(lua_State* L){ if(lua_objlen(L, -1) > 0){ cJSON* ele =cJSON_CreateArray(); const int len =lua_objlen(L, -1); for(int i=1; i<=len; ++i){ lua_rawgeti(L, -1, i); if(lua_isnil(L, -1)){ cJSON_AddItemToArray(ele, cJSON_CreateNull()); } else if(lua_isboolean(L, -1)){ if(lua_toboolean(L, -1)){ cJSON_AddItemToArray(ele, cJSON_CreateTrue()); } else{ cJSON_AddItemToArray(ele, cJSON_CreateFalse()); } } else if(lua_isnumber(L, -1)){ cJSON_AddItemToArray(ele, cJSON_CreateNumber(lua_tonumber(L, -1))); } else if(lua_isstring(L, -1)){ cJSON_AddItemToArray(ele, cJSON_CreateString(lua_tostring(L, -1))); } else if(lua_istable(L, -1)){ cJSON_AddItemToArray(ele, lua_to_json(L)); } lua_pop(L, 1); } return ele; } else{ cJSON* ele =cJSON_CreateObject(); lua_pushnil(L); while(0 != lua_next(L, -2)){ if(lua_isstring(L, -2)){ const char* name =lua_tostring(L, -2); if(lua_isboolean(L, -1)){ if(lua_toboolean(L, -1)){ cJSON_AddTrueToObject(ele, name); } else{ cJSON_AddFalseToObject(ele, name); } } else if(lua_isnumber(L, -1)){ cJSON_AddNumberToObject(ele, name, lua_tonumber(L, -1)); } else if(lua_isstring(L, -1)){ cJSON_AddStringToObject(ele, name, lua_tostring(L, -1)); } else if(lua_istable(L, -1)){ cJSON_AddItemToObject(ele, name, lua_to_json(L)); } } lua_pop(L, 1); } return ele; } }
static cJSON * azy_value_serialize_basic_json(const Eina_Value *val) { switch (azy_value_util_type_get(val)) { case AZY_VALUE_INT: { int int_val = -1; eina_value_get(val, &int_val); return cJSON_CreateNumber(int_val); } case AZY_VALUE_TIME: { time_t t; struct tm *tim; char buf[1024]; eina_value_get(val, &t); tim = localtime(&t); strftime(buf, sizeof(buf), "%Y%m%dT%H:%M:%S", tim); return cJSON_CreateString(buf); } case AZY_VALUE_STRING: case AZY_VALUE_BASE64: { const char *str_val; eina_value_get(val, &str_val); return cJSON_CreateString(str_val); } case AZY_VALUE_BOOL: { Eina_Bool bool_val; eina_value_get(val, &bool_val); if (bool_val) return cJSON_CreateTrue(); return cJSON_CreateFalse(); } case AZY_VALUE_DOUBLE: { double dbl_val = -1; eina_value_get(val, &dbl_val); return cJSON_CreateNumber(dbl_val); } default: break; } return NULL; }
void st_setTuneParams(uint32_t adapter, cJSON *params, EIT_media_config_t *media) { if(media == NULL) { eprintf("%s(): Wrong argument: media not setted!\n", __func__); return; } cJSON_AddItemToObject(params, "tuner", cJSON_CreateNumber(adapter)); switch(dvbfe_getType(adapter)) { case SYS_DVBT: case SYS_DVBT2: cJSON_AddItemToObject(params, "stream", cJSON_CreateNumber(media->dvb_t.plp_id)); // cJSON_AddItemToObject(params, "generation", cJSON_CreateNumber(media->dvb_t.generation)); break; case SYS_DVBC_ANNEX_AC: { fe_modulation_t modulation = media->dvb_c.modulation; uint32_t symbolRate = media->dvb_c.symbol_rate / 1000; const char *modName; modName = getModulationName(modulation); if(modName) { cJSON_AddItemToObject(params, "modulation", cJSON_CreateString(modName)); } cJSON_AddItemToObject(params, "symbolrate", cJSON_CreateNumber(symbolRate)); break; } case SYS_DVBS: { int32_t vertical = media->dvb_s.polarization == 1; uint32_t symbolRate = media->dvb_s.symbol_rate / 1000; cJSON_AddItemToObject(params, "symbolrate", cJSON_CreateNumber(symbolRate)); if(vertical) { cJSON_AddItemToObject(params, "vertical", cJSON_CreateTrue()); } break; } case SYS_ATSC: case SYS_DVBC_ANNEX_B:{ fe_modulation_t modulation = media->atsc.modulation; const char *modName; modName = getModulationName(modulation); if(modName) { cJSON_AddItemToObject(params, "modulation", cJSON_CreateString(modName)); } break; } default:; } }
void *do_work(void *p) { int sock_fd; sock_fd = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in srv; srv.sin_family = AF_INET; srv.sin_port = htons(port); srv.sin_addr.s_addr = inet_addr(HOST); connect(sock_fd, (struct sockaddr*)&srv, sizeof(srv)); char szBuf[50]; snprintf(szBuf, 50, "%s %d", p, pthread_self()); printf(szBuf); //use json cJSON *root_json = cJSON_CreateObject(); cJSON_AddItemToObject(root_json, "needResponse", cJSON_CreateTrue()); cJSON_AddItemToObject(root_json, "message", cJSON_CreateString(szBuf)); cJSON_AddItemToObject(root_json, "len", cJSON_CreateNumber(strlen(szBuf))); char *json_str = cJSON_Print(root_json); /*Wow__News msg; wow__news__init(&msg); msg.needresponse = 1; msg.message = szBuf; msg.len = strlen(szBuf); size_t size = wow__news__get_packed_size(&msg); uint8_t *data = (uint8_t*)malloc(sizeof(uint8_t)*size); wow__news__pack(&msg, data);*/ size_t size = strlen(json_str); uint8_t *pbuf = (uint8_t*)malloc(sizeof(uint8_t)*(size+1)); crc_data(json_str, size, pbuf); time_t t1, t2; time(&t1); send(sock_fd, pbuf, size+1, 0); //recv(sock_fd, pbuf, size+1, 0); time(&t2); printf("all spend %dsec\n", t2-t1); free(pbuf); }
cJSON *JSONNode::spawnNode(int nodeType, char *name) { cJSON *node = NULL; if(nodeType == cJSON_Object) { node = cJSON_CreateObject(); node -> string = name; }else if(nodeType == cJSON_Array){ node = cJSON_CreateArray(); node -> string = name; }else if(nodeType == cJSON_True){ node = cJSON_CreateTrue(); node -> string = name; }else if(nodeType == cJSON_False){ node = cJSON_CreateFalse(); node -> string = name; }else if(nodeType == cJSON_NULL){ node = cJSON_CreateNull(); node -> string = name; } return node; }
static cJSON *tocJSON(const QVariant &variant) { cJSON *ret = 0; switch (variant.type()) { case QVariant::Invalid: ret = cJSON_CreateNull(); break; case QVariant::Bool: ret = (variant.toBool() ? cJSON_CreateTrue() : cJSON_CreateFalse()); break; case QVariant::Int: ret = cJSON_CreateNumber(variant.toInt()); break; case QVariant::UInt: ret = cJSON_CreateNumber(variant.toUInt()); break; case QVariant::LongLong: ret = cJSON_CreateNumber(variant.toLongLong()); break; case QVariant::ULongLong: ret = cJSON_CreateNumber(variant.toULongLong()); break; case QVariant::Double: ret = cJSON_CreateNumber(variant.toDouble()); break; case QVariant::String: ret = cJSON_CreateString(variant.toString().toUtf8().constData()); break; case QVariant::ByteArray: ret = cJSON_CreateString(variant.toByteArray().constData()); break; case QVariant::List: ret = cJSON_CreateArray(); Q_ASSERT(ret); foreach(const QVariant &item, variant.toList()) cJSON_AddItemToArray(ret, tocJSON(item)); break; case QVariant::Map: { ret = cJSON_CreateObject(); Q_ASSERT(ret); const QVariantMap map = variant.toMap(); for (QMap<QString, QVariant>::const_iterator it = map.begin(); it != map.end(); ++it) cJSON_AddItemToObject(ret, it.key().toUtf8().constData(), tocJSON(it.value())); break; } case QVariant::StringList: ret = cJSON_CreateArray(); Q_ASSERT(ret); foreach(const QString &string, variant.toStringList()) cJSON_AddItemToArray(ret, tocJSON(string)); break; default: qWarning("Can't convert variant to json %d", variant.type()); } return ret; }
/** * @brief Set the named boolean property. * @param [in] name The name of the property to add. * @param [in] value The boolean to add to the object. * @return N/A. */ void JsonObject::setBoolean(std::string name, bool value) { cJSON_AddItemToObject(m_node, name.c_str(), value?cJSON_CreateTrue():cJSON_CreateFalse()); } // setBoolean
virtual void visit(const CCBool *p) { m_json = p->getValue() ? cJSON_CreateTrue() :cJSON_CreateFalse(); }