|
@@ -79,7 +79,7 @@ JSONElement JSONElement::index_or_nil(uint32_t i)
|
|
|
JSONElement JSONElement::key(const char* k)
|
|
JSONElement JSONElement::key(const char* k)
|
|
|
{
|
|
{
|
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
|
- njson::parse_object(_at, object);
|
|
|
|
|
|
|
+ njson::parse(_at, object);
|
|
|
|
|
|
|
|
const char* value = map::get(object, DynamicString(k), (const char*) NULL);
|
|
const char* value = map::get(object, DynamicString(k), (const char*) NULL);
|
|
|
CE_ASSERT(value != NULL, "Key not found: '%s'", k);
|
|
CE_ASSERT(value != NULL, "Key not found: '%s'", k);
|
|
@@ -92,7 +92,7 @@ JSONElement JSONElement::key_or_nil(const char* k)
|
|
|
if (_at != NULL)
|
|
if (_at != NULL)
|
|
|
{
|
|
{
|
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
|
- njson::parse_object(_at, object);
|
|
|
|
|
|
|
+ njson::parse(_at, object);
|
|
|
|
|
|
|
|
const char* value = map::get(object, DynamicString(k), (const char*) NULL);
|
|
const char* value = map::get(object, DynamicString(k), (const char*) NULL);
|
|
|
|
|
|
|
@@ -106,7 +106,7 @@ JSONElement JSONElement::key_or_nil(const char* k)
|
|
|
bool JSONElement::has_key(const char* k) const
|
|
bool JSONElement::has_key(const char* k) const
|
|
|
{
|
|
{
|
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
|
- njson::parse_object(_at, object);
|
|
|
|
|
|
|
+ njson::parse(_at, object);
|
|
|
|
|
|
|
|
return map::has(object, DynamicString(k));
|
|
return map::has(object, DynamicString(k));
|
|
|
}
|
|
}
|
|
@@ -214,13 +214,11 @@ StringId32 JSONElement::to_string_id(const StringId32 def) const
|
|
|
return str.to_string_id();
|
|
return str.to_string_id();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-ResourceId JSONElement::to_resource_id(const char* type) const
|
|
|
|
|
|
|
+ResourceId JSONElement::to_resource_id() const
|
|
|
{
|
|
{
|
|
|
- CE_ASSERT_NOT_NULL(type);
|
|
|
|
|
- // TempAllocator1024 alloc;
|
|
|
|
|
DynamicString str(default_allocator());
|
|
DynamicString str(default_allocator());
|
|
|
njson::parse_string(_at, str);
|
|
njson::parse_string(_at, str);
|
|
|
- return ResourceId(type, str.c_str());
|
|
|
|
|
|
|
+ return ResourceId(str.c_str());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void JSONElement::to_array(Array<bool>& array) const
|
|
void JSONElement::to_array(Array<bool>& array) const
|
|
@@ -312,7 +310,7 @@ void JSONElement::to_array(Vector<DynamicString>& array) const
|
|
|
void JSONElement::to_keys(Vector<DynamicString>& keys) const
|
|
void JSONElement::to_keys(Vector<DynamicString>& keys) const
|
|
|
{
|
|
{
|
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
|
- njson::parse_object(_at, object);
|
|
|
|
|
|
|
+ njson::parse(_at, object);
|
|
|
|
|
|
|
|
const Map<DynamicString, const char*>::Node* it = map::begin(object);
|
|
const Map<DynamicString, const char*>::Node* it = map::begin(object);
|
|
|
while (it != map::end(object))
|
|
while (it != map::end(object))
|
|
@@ -398,7 +396,7 @@ uint32_t JSONElement::size() const
|
|
|
case NJSONValueType::OBJECT:
|
|
case NJSONValueType::OBJECT:
|
|
|
{
|
|
{
|
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
Map<DynamicString, const char*> object(default_allocator());
|
|
|
- njson::parse_object(_at, object);
|
|
|
|
|
|
|
+ njson::parse(_at, object);
|
|
|
return map::size(object);
|
|
return map::size(object);
|
|
|
}
|
|
}
|
|
|
case NJSONValueType::ARRAY:
|
|
case NJSONValueType::ARRAY:
|
|
@@ -441,11 +439,20 @@ JSONParser::JSONParser(File& f)
|
|
|
, _document(NULL)
|
|
, _document(NULL)
|
|
|
{
|
|
{
|
|
|
const size_t size = f.size();
|
|
const size_t size = f.size();
|
|
|
- char* doc = (char*) default_allocator().allocate(size);
|
|
|
|
|
|
|
+ char* doc = (char*) default_allocator().allocate(size + 1);
|
|
|
f.read(doc, size);
|
|
f.read(doc, size);
|
|
|
|
|
+ doc[size] = '\0';
|
|
|
_document = doc;
|
|
_document = doc;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+JSONParser::JSONParser(Buffer& b)
|
|
|
|
|
+ : _file(false)
|
|
|
|
|
+ , _document(NULL)
|
|
|
|
|
+{
|
|
|
|
|
+ array::push_back(b, '\0');
|
|
|
|
|
+ _document = array::begin(b);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
JSONParser::~JSONParser()
|
|
JSONParser::~JSONParser()
|
|
|
{
|
|
{
|
|
|
if (_file)
|
|
if (_file)
|