예제 #1
0
JSONElement JSONRoot::toElement() const
{
    if(!_json) {
        return JSONElement(NULL);
    }
    return JSONElement(_json);
}
예제 #2
0
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;
}
예제 #3
0
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);
}
예제 #4
0
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));
}
예제 #5
0
JSONElement JSONElement::firstChild()
{
    _walker = NULL;
    if(!_json) {
        return JSONElement(NULL);
    }

    if(!_json->child) {
        return JSONElement(NULL);
    }

    _walker = _json->child;
    return JSONElement(_walker);
}
예제 #6
0
//--------------------------------------------------------------------------
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();
}
예제 #7
0
//--------------------------------------------------------------------------
JSONElement JSONParser::root()
{
	const char* ch = m_document;
	while ((*ch) && (*ch) <= ' ') ch++;

	return JSONElement(ch);
}
예제 #8
0
//--------------------------------------------------------------------------
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();
}
예제 #9
0
JSONElement JSONElement::nextChild()
{
    if(!_walker) {
        return JSONElement(NULL);
    }

    JSONElement element(_walker->next);
    _walker = _walker->next;
    return element;
}
예제 #10
0
//--------------------------------------------------------------------------
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]);
}
예제 #11
0
//--------------------------------------------------------------------------
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);
}
예제 #12
0
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));
}
예제 #13
0
void JSONElement::arrayAppend(const wxString& value) { arrayAppend(JSONElement(wxT(""), value, cJSON_String)); }
예제 #14
0
JSONElement& JSONElement::addProperty(const wxString& name, long value)
{
    append(JSONElement(name, value, cJSON_Number));
    return *this;
}
예제 #15
0
JSONElement& JSONElement::addProperty(const wxString& name, const wxChar* value)
{
    append(JSONElement(name, wxString(value), cJSON_String));
    return *this;
}