JSONElement JSONRoot::toElement() const { if(!_json) { return JSONElement(NULL); } return JSONElement(_json); }
JSONElement& JSONElement::addProperty(const wxString& name, bool value) { if(value) { append(JSONElement(name, value, cJSON_True)); } else { append(JSONElement(name, value, cJSON_False)); } return *this; }
JSONElement JSONElement::namedObject(const wxString& name) const { if(!_json) { return JSONElement(NULL); } cJSON* obj = cJSON_GetObjectItem(_json, name.mb_str(wxConvUTF8).data()); if(!obj) { return JSONElement(NULL); } return JSONElement(obj); }
JSONElement JSONElement::arrayItem(int pos) const { if(!_json) { return JSONElement(NULL); } if(_json->type != cJSON_Array) return JSONElement(NULL); int size = cJSON_GetArraySize(_json); if(pos >= size) return JSONElement(NULL); return JSONElement(cJSON_GetArrayItem(_json, pos)); }
JSONElement JSONElement::firstChild() { _walker = NULL; if(!_json) { return JSONElement(NULL); } if(!_json->child) { return JSONElement(NULL); } _walker = _json->child; return JSONElement(_walker); }
//-------------------------------------------------------------------------- JSONElement JSONElement::key_or_nil(const char* k) { if (m_at != NULL) { Map<DynamicString, const char*> object(default_allocator()); json::parse_object(m_at, object); const char* value = map::get(object, DynamicString(k), (const char*) NULL); if (value) return JSONElement(value); } return JSONElement(); }
//-------------------------------------------------------------------------- JSONElement JSONParser::root() { const char* ch = m_document; while ((*ch) && (*ch) <= ' ') ch++; return JSONElement(ch); }
//-------------------------------------------------------------------------- JSONElement JSONElement::index_or_nil(uint32_t i) { if (m_at != NULL) { Array<const char*> array(default_allocator()); json::parse_array(m_at, array); if (i >= array::size(array)) { return JSONElement(); } return JSONElement(array[i]); } return JSONElement(); }
JSONElement JSONElement::nextChild() { if(!_walker) { return JSONElement(NULL); } JSONElement element(_walker->next); _walker = _walker->next; return element; }
//-------------------------------------------------------------------------- JSONElement JSONElement::operator[](uint32_t i) { Array<const char*> array(default_allocator()); json::parse_array(m_at, array); CE_ASSERT(i < array::size(array), "Index out of bounds"); return JSONElement(array[i]); }
//-------------------------------------------------------------------------- JSONElement JSONElement::key(const char* k) { Map<DynamicString, const char*> object(default_allocator()); json::parse_object(m_at, object); const char* value = map::get(object, DynamicString(k), (const char*) NULL); CE_ASSERT(value != NULL, "Key not found: '%s'", k); return JSONElement(value); }
void NodeJSDebugger::Lookup(const std::vector<int>& handles, eNodeJSContext context) { JSONElement request = JSONElement::createObject(); request.addProperty("type", "request"); request.addProperty("command", "lookup"); JSONElement args = JSONElement::createObject("arguments"); request.append(args); JSONElement arrHandles = JSONElement::createArray("handles"); args.append(arrHandles); for(size_t i = 0; i < handles.size(); ++i) { arrHandles.arrayAppend(JSONElement("", handles.at(i), cJSON_Number)); } // Write the command m_socket->WriteRequest(request, new NodeJSLookupHandler(context)); }
void JSONElement::arrayAppend(const wxString& value) { arrayAppend(JSONElement(wxT(""), value, cJSON_String)); }
JSONElement& JSONElement::addProperty(const wxString& name, long value) { append(JSONElement(name, value, cJSON_Number)); return *this; }
JSONElement& JSONElement::addProperty(const wxString& name, const wxChar* value) { append(JSONElement(name, wxString(value), cJSON_String)); return *this; }