How to use new freebase api (api search) in java? -
i cant understand api. have downloaded (maven) google-api-services-freebase , test have tried code:
jsonhttprequestinitializer initializer = new googlekeyinitializer("my key"); httptransport httptransport = new nethttptransport(); jsonfactory jsonfactory = new jacksonfactory(); freebase freebase = freebase.builder(httptransport, jsonfactory).setjsonhttprequestinitializer(initializer).build();
now want this:
https://www.googleapis.com/freebase/v1/search?query=cardiff&lang=en&type=university
and next, want parse json output.
please, method in freebase object?. see freebase.mqlread , freebase.text cant find method similar api search (http://wiki.freebase.com/wiki/apisearch).
unfortunately, java api client doesn't support freebase search yet. here's how search using apache httpclient instead.
httpclient httpclient = new defaulthttpclient(); jsonparser parser = new jsonparser(); list<namevaluepair> params = new arraylist<namevaluepair>(); params.add(new basicnamevaluepair("query", "blue bottle")); params.add(new basicnamevaluepair("key", api_key)); string serviceurl = "https://www.googleapis.com/freebase/v1/search"; string url = serviceurl + "?" + urlencodedutils.format(params, "utf-8"); httpresponse httpresponse = httpclient.execute(new httpget(url)); jsonobject response = (jsonobject)parser.parse(entityutils.tostring(httpresponse.getentity())); jsonarray results = (jsonarray)response.get("result"); (object result : results) { system.out.println(jsonpath.read(result,"$.name").tostring()); }
this code uses json-simple , json-path libraries.
Comments
Post a Comment