From 132c4d34f14658829ad49f229427c05f34142f32 Mon Sep 17 00:00:00 2001 From: Kriti Birda Date: Fri, 7 Jun 2024 16:08:12 +0530 Subject: [PATCH] document json format for v.info and add changes from code review --- vector/v.info/main.c | 1 - vector/v.info/print.c | 10 +++++-- vector/v.info/testsuite/test_vinfo.py | 1 - vector/v.info/v.info.html | 43 +++++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 4 deletions(-) diff --git a/vector/v.info/main.c b/vector/v.info/main.c index fcb15ec9428..6f4aa9a8fcf 100644 --- a/vector/v.info/main.c +++ b/vector/v.info/main.c @@ -57,7 +57,6 @@ int main(int argc, char *argv[]) if (format == JSON) { root_value = json_value_init_object(); root_object = json_value_get_object(root_value); - json_set_float_serialization_format("%lf"); } /* try to open head-only on level 2 */ diff --git a/vector/v.info/print.c b/vector/v.info/print.c index dc35488efe5..1cd5a31b75a 100644 --- a/vector/v.info/print.c +++ b/vector/v.info/print.c @@ -309,7 +309,10 @@ void print_shell(struct Map_info *Map, const char *field_opt, Vect_get_finfo_geometry_type(Map)); break; case JSON: - // fixme: add format=%,%s + json_object_set_string(root_object, "format", + Vect_maptype_info(Map)); + json_object_set_string(root_object, "format-detail", + Vect_get_finfo_format_info(Map)); json_object_set_string(root_object, "ogr_layer", Vect_get_finfo_layer_name(Map)); json_object_set_string(root_object, "ogr_dsn", @@ -337,7 +340,10 @@ void print_shell(struct Map_info *Map, const char *field_opt, Vect_get_finfo_geometry_type(Map)); break; case JSON: - // fixme: add format=%,%s + json_object_set_string(root_object, "format", + Vect_maptype_info(Map)); + json_object_set_string(root_object, "format-detail", + Vect_get_finfo_format_info(Map)); json_object_set_string(root_object, "pg_table", Vect_get_finfo_layer_name(Map)); json_object_set_string(root_object, "pg_dbname", diff --git a/vector/v.info/testsuite/test_vinfo.py b/vector/v.info/testsuite/test_vinfo.py index 3a4a066123f..1e1d0f3043d 100644 --- a/vector/v.info/testsuite/test_vinfo.py +++ b/vector/v.info/testsuite/test_vinfo.py @@ -228,7 +228,6 @@ def test_json(self): # therefore only check for their presence in the JSON output # and not exact values remove_fields = [ - "location", "project", "database", "source_date", diff --git a/vector/v.info/v.info.html b/vector/v.info/v.info.html index 1facf172dc9..90404397889 100644 --- a/vector/v.info/v.info.html +++ b/vector/v.info/v.info.html @@ -136,6 +136,49 @@

Basic metadata information in shell script style

bottom=0.000000 +

Output in JSON format

+
+{
+    "name": "geology",
+    "mapset": "PERMANENT",
+    "project": "nc_spm_08_grass7",
+    "database": "\/grassdata",
+    "title": "North Carolina geology map (polygon map)",
+    "scale": 1,
+    "creator": "helena",
+    "organization": "NC OneMap",
+    "source_date": "Mon Nov  6 15:48:53 2006",
+    "timestamp": null,
+    "format": "native",
+    "level": 2,
+    "num_dblinks": 1,
+    "attribute_layer_number": 1,
+    "attribute_layer_name": "geology",
+    "attribute_database": "\/grassdata\/nc_spm_08_grass7\/PERMANENT\/sqlite\/sqlite.db",
+    "attribute_database_driver": "sqlite",
+    "attribute_table": "geology",
+    "attribute_primary_key": "cat",
+    "projection": "Lambert Conformal Conic",
+    "digitization_threshold": 0,
+    "comment": "",
+    "north": 318117.43741634465,
+    "south": 10875.827232091688,
+    "east": 930172.31282271142,
+    "west": 123971.19498978264,
+    "top": 0,
+    "bottom": 0,
+    "nodes": 2724,
+    "points": 0,
+    "lines": 0,
+    "boundaries": 3649,
+    "centroids": 1832,
+    "areas": 1832,
+    "islands": 907,
+    "primitives": 5481,
+    "map3d": false
+}
+
+

PYTHON

See Python