fix generic_json usage across grammars

This commit is contained in:
artemp 2016-05-06 09:55:54 +02:00
parent e528b433d4
commit 6bd708af86
5 changed files with 14 additions and 15 deletions

View file

@ -154,7 +154,7 @@ extract_bounding_box_grammar<Iterator, Boxes, ErrorHandler>::extract_bounding_bo
json.key_value = (json.string_ >> lit(':') >> json.value)
;
json.object = lit('{') >> *json.pairs >> lit('}')
json.object = lit('{') >> json.pairs >> lit('}')
;
json.array = lit('[')

View file

@ -65,7 +65,7 @@ geometry_grammar<Iterator, ErrorHandler>::geometry_grammar()
;
json_.object = lit('{')
> *json_.pairs
> json_.pairs
> lit('}')
;
json_.array = lit('[')

View file

@ -139,7 +139,7 @@ topojson_grammar<Iterator, ErrorHandler>::topojson_grammar()
json.key_value = (json.string_ >> lit(':') >> json.value)
;
json.object = lit('{') >> *json.pairs >> lit('}')
json.object = lit('{') >> json.pairs >> lit('}')
;
json.array = lit('[')

View file

@ -257,7 +257,14 @@ public:
{
return mapnik::value(tr_.transcode(val.c_str()));
}
mapnik::value operator()(std::vector<mapnik::json::json_value> const& arr) const
{
return mapnik::value(tr_.transcode("FAIL ARRAY"));
}
mapnik::value operator()(std::unordered_map<std::string, mapnik::json::json_value> const& obj) const
{
return mapnik::value(tr_.transcode("FAIL OBJECT"));
}
template <typename T>
mapnik::value operator()(T const& val) const
{

View file

@ -67,17 +67,9 @@ struct attr_value_converter
return mapnik::Boolean;
}
mapnik::eAttributeType operator() (std::string const& /*val*/) const
{
return mapnik::String;
}
mapnik::eAttributeType operator() (mapnik::value_unicode_string const& /*val*/) const
{
return mapnik::String;
}
mapnik::eAttributeType operator() (mapnik::value_null const& /*val*/) const
// string, object, array
template <typename T>
mapnik::eAttributeType operator() (T const& /*val*/) const
{
return mapnik::String;
}