SimpleGraph-JSON: Difference between revisions

From BITPlan Wiki
Jump to navigation Jump to search
Line 11: Line 11:


=== Explanation ===
=== Explanation ===
==== Raw Result ====
<source lang='json'>
{
  "results" : [
      {
        "address_components" : [
            {
              "long_name" : "4",
              "short_name" : "4",
              "types" : [ "street_number" ]
            },
            {
              "long_name" : "Domkloster",
              "short_name" : "Domkloster",
              "types" : [ "route" ]
            },
            {
              "long_name" : "Innenstadt",
              "short_name" : "Innenstadt",
              "types" : [ "political", "sublocality", "sublocality_level_1" ]
            },
            {
              "long_name" : "Köln",
              "short_name" : "Köln",
              "types" : [ "locality", "political" ]
            },
            {
              "long_name" : "Köln",
              "short_name" : "K",
              "types" : [ "administrative_area_level_2", "political" ]
            },
            {
              "long_name" : "Nordrhein-Westfalen",
              "short_name" : "NRW",
              "types" : [ "administrative_area_level_1", "political" ]
            },
            {
              "long_name" : "Deutschland",
              "short_name" : "DE",
              "types" : [ "country", "political" ]
            },
            {
              "long_name" : "50667",
              "short_name" : "50667",
              "types" : [ "postal_code" ]
            }
        ],
        "formatted_address" : "Domkloster 4, 50667 Köln, Deutschland",
        "geometry" : {
            "location" : {
              "lat" : 50.94127839999999,
              "lng" : 6.9582814
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
              "northeast" : {
                  "lat" : 50.94262738029149,
                  "lng" : 6.959630380291502
              },
              "southwest" : {
                  "lat" : 50.93992941970849,
                  "lng" : 6.956932419708497
              }
            }
        },
        "place_id" : "ChIJLz2cNqUlv0cRxqnjljiR7Ck",
        "types" : [ "church", "establishment", "place_of_worship", "point_of_interest" ]
      },
      {
        "address_components" : [
            {
              "long_name" : "4",
              "short_name" : "4",
              "types" : [ "street_number" ]
            },
            {
              "long_name" : "Domkloster",
              "short_name" : "Domkloster",
              "types" : [ "route" ]
            },
            {
              "long_name" : "Innenstadt",
              "short_name" : "Innenstadt",
              "types" : [ "political", "sublocality", "sublocality_level_1" ]
            },
            {
              "long_name" : "Köln",
              "short_name" : "Köln",
              "types" : [ "locality", "political" ]
            },
            {
              "long_name" : "Köln",
              "short_name" : "K",
              "types" : [ "administrative_area_level_2", "political" ]
            },
            {
              "long_name" : "Nordrhein-Westfalen",
              "short_name" : "NRW",
              "types" : [ "administrative_area_level_1", "political" ]
            },
            {
              "long_name" : "Deutschland",
              "short_name" : "DE",
              "types" : [ "country", "political" ]
            },
            {
              "long_name" : "50667",
              "short_name" : "50667",
              "types" : [ "postal_code" ]
            }
        ],
        "formatted_address" : "Domkloster 4, 50667 Köln, Deutschland",
        "geometry" : {
            "location" : {
              "lat" : 50.9412892,
              "lng" : 6.958912499999999
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
              "northeast" : {
                  "lat" : 50.9426381802915,
                  "lng" : 6.960261480291502
              },
              "southwest" : {
                  "lat" : 50.9399402197085,
                  "lng" : 6.957563519708498
              }
            }
        },
        "place_id" : "ChIJ-ydP-a8lv0cRfBO-EehI_1s",
        "types" : [ "church", "establishment", "place_of_worship", "point_of_interest" ]
      }
  ],
  "status" : "OK"
}
</source>
=== JUnit Test for SimpleGraph JSON module ===
<source lang='java'>
<source lang='java'>
@Test
@Test

Revision as of 07:10, 14 February 2018

SimpleGraph JSON module

The SimpleGraph JSON module makes JSON parse results accessible to Graph processing.

Example

Goal

We would like to retrieve the latitute of cologne cathedral from the Google Maps API. The query returns JSON data for the location of cologne cathedral.

Result

50.9412

Explanation

Raw Result

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "4",
               "short_name" : "4",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Domkloster",
               "short_name" : "Domkloster",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Innenstadt",
               "short_name" : "Innenstadt",
               "types" : [ "political", "sublocality", "sublocality_level_1" ]
            },
            {
               "long_name" : "Köln",
               "short_name" : "Köln",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Köln",
               "short_name" : "K",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Nordrhein-Westfalen",
               "short_name" : "NRW",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Deutschland",
               "short_name" : "DE",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "50667",
               "short_name" : "50667",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Domkloster 4, 50667 Köln, Deutschland",
         "geometry" : {
            "location" : {
               "lat" : 50.94127839999999,
               "lng" : 6.9582814
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 50.94262738029149,
                  "lng" : 6.959630380291502
               },
               "southwest" : {
                  "lat" : 50.93992941970849,
                  "lng" : 6.956932419708497
               }
            }
         },
         "place_id" : "ChIJLz2cNqUlv0cRxqnjljiR7Ck",
         "types" : [ "church", "establishment", "place_of_worship", "point_of_interest" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "4",
               "short_name" : "4",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Domkloster",
               "short_name" : "Domkloster",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Innenstadt",
               "short_name" : "Innenstadt",
               "types" : [ "political", "sublocality", "sublocality_level_1" ]
            },
            {
               "long_name" : "Köln",
               "short_name" : "Köln",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Köln",
               "short_name" : "K",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Nordrhein-Westfalen",
               "short_name" : "NRW",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Deutschland",
               "short_name" : "DE",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "50667",
               "short_name" : "50667",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Domkloster 4, 50667 Köln, Deutschland",
         "geometry" : {
            "location" : {
               "lat" : 50.9412892,
               "lng" : 6.958912499999999
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 50.9426381802915,
                  "lng" : 6.960261480291502
               },
               "southwest" : {
                  "lat" : 50.9399402197085,
                  "lng" : 6.957563519708498
               }
            }
         },
         "place_id" : "ChIJ-ydP-a8lv0cRfBO-EehI_1s",
         "types" : [ "church", "establishment", "place_of_worship", "point_of_interest" ]
      }
   ],
   "status" : "OK"
}

JUnit Test for SimpleGraph JSON module

@Test
  public void testGoogleMapsJsonApi() throws Exception {
    String url="https://maps.googleapis.com/maps/api/geocode/json?address=Cologne%20Cathedral";
    String json=IOUtils.toString(new URL(url),"UTF-8");
    debug=true;
    if (debug)
      System.out.println(json);
    JsonSystem js = new JsonSystem();
    SimpleSystem dom = js.connect("json", json);
    if (debug)
      js.getStartNode().forAll(SimpleNode.printDebug);
    Holder<String> latHolder=new Holder<String>();
    dom.g().V().hasLabel("location").forEachRemaining(v->latHolder.add(v.property("lat").value().toString()));
    String lat=latHolder.getFirstValue();
    if (debug)
      System.out.println(lat);
    assertTrue(lat.startsWith("50.9412"));
  }