Frage

Ich bin sehr neu in json, google apis.Also bitte guide.
Ich versuche, eine Anwendung zu schreiben, die in 'JAVA', die würden nutzen google custom fast Restful-api, durch.Ich begann zu lernen json und gehen durch [link] http://code.google.com/apis/customsearch/v1/overview.html ich wollte schreiben von code.

Dies zeigt die json-Suche für google:
http://code.google.com/apis/customsearch/v1/reference.html#method_search_cse_list

Referenz http://code.google.com/apis/customsearch/v1/reference.html

Aus der Referenz, die ich gefunden, die Felder dieses CustomSearch wäre, String oder int oder beliebigen anderen Datentyp.Sie haben auch definierte Struktur jedes Objekts.

Aber ich bin mit Problemen konfrontiert, mit einigen Datentypen:

items.title     array   The title of the search result, in plain text.
items.snippet   array   The snippet of the search result, in plain text.
items.pagemap   object  Contains pagemap information for this search result.    
items.pagemap.value     array   Pagemap information, keyed by the name of this pagemap.     
items.pagemap.value.value   object  The actual pagemap information.

Wie würde ich definieren Sie in meiner Klasse. welche Art von array ist der Titel string oder char und diese pagemap einige übereinkommens oder einer Website kann Ihren eigenen tags .

// Klasse CustomSearch

public class CustomSearch {
public URL getURL() throws MalformedURLException{
    return url.getURL();
}

@Key ("items") ArrayList<SearchResult> results;
private @Key SearchURL url;
private @Key Query queries; 

}

// class

class SearchResult {
public SearchResult(){        
}

public String getTitle(){
    return title;
}
public String getLink(){
    return link;
}
public String getSnippet(){
    return snippet;
}

private @Key String title;   // is this right ?
private @Key String htmlTitle;
private @Key String link;
private @Key String snippet;   // is this right ?
private @Key String htmlSnippet;    

}

War es hilfreich?

Lösung

Ich gab eine echte Suche mit meinem Schlüssel wie vorgeschlagen in Googles Beispiel:

GET https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=013036536707430787589:_pqjad5hr1a&q=flowers&alt=json

Und hier ist, was ich bekommen (mit nur wenig Daten)

items": [
  {
   "kind": "customsearch#result",
   "title": "FTD.COM - Flowers Online | Roses, Fresh Flowers, Plants and Gift ...",
   "htmlTitle": "FTD.COM - \u003cb\u003eFlowers\u003c/b\u003e Online | Roses, Fresh \u003cb\u003eFlowers\u003c/b\u003e, Plants and Gift \u003cb\u003e...\u003c/b\u003e",
   "link": "http://www.ftd.com/",
   "displayLink": "www.ftd.com",
   "snippet": "Aug 2, 2011 ... Order flowers online for same day floral delivery. Shop for flowers, chocolates,   roses, gifts and gift baskets by occasion, season or get beautiful ...",
   "htmlSnippet": "Aug 2, 2011 \u003cb\u003e...\u003c/b\u003e Order \u003cb\u003eflowers\u003c/b\u003e online for same day floral delivery. Shop for \u003cb\u003eflowers\u003c/b\u003e, chocolates, \u003cbr\u003e  roses, gifts and gift baskets by occasion, season or get beautiful \u003cb\u003e...\u003c/b\u003e",
   "cacheId": "D_MQAIEeVpAJ",
   "pagemap": {
    "metatags": [
     {
      "y_key": "e887dc108fef83f6",
      "msvalidate.01": "71957E1C9D33211154243270EB14C63C"
     }
    ]
   }
  ......

Es sieht aus wie:

items.title     array   The title of the search result, in plain text.

Dies sieht aus wie ein String-Datentyp von paar Ergebnisse, die ich bekomme, also bin ich nicht sicher, warum die Referenz klassifiziert es als array

items.snippet   array   The snippet of the search result, in plain text.

Dies sieht aus wie ein String-Datentyp, sowie aus den Ergebnissen, die ich bekam

items.pagemap   object  Contains pagemap information for this search result.    
items.pagemap.value     array   Pagemap information, keyed by the name of this pagemap.     
items.pagemap.value.value   object  The actual pagemap information.

Auf der Grundlage der PageMap Beschreibung dies sieht aus wie eine beliebige Schlüssel-Wert-paar Daten, die die website bereitstellen könnte.

Unten sind einige von pagemaps, dass ich von meinem test für Ihre Referenz:

 "pagemap": {
    "metatags": [
     {
      "y_key": "e887dc108fef83f6",
      "msvalidate.01": "71957E1C9D33211154243270EB14C63C"
     }
    ]
   }

 "pagemap": {
    "website": [
     {
      "type": "website",
      "title": "ProFlowers",
      "description": "The freshest flowers, guaranteed to last at least 7 days.",
      "image": "http://a1128.g.akamai.net/7/1128/497/0001/images.proflowers.com/pcsite/ProflowersLogo_nb.gif",
      "url": "http://www.proflowers.com/",
      "site_name": "ProFlowers",
      "app_id": "180475245301608"
     }
    ],
    "metatags": [
     {
      "msnbot": "NOODP",
      "msvalidate.01": "77940E049C181974C3AA656C72688B4C"
     }
    ]
   }

  "pagemap": {
    "metatags": [
     {
      "viewport": "width=device-width; initial-scale=1.0; maximum-scale=1.0;"
     }
    ]

Als pagemap ist sehr unstrukturiert würde ich speichern Sie Sie als Map<String, JSONObject> pagemap.Wie Sie sehen können, dass ich nur halten die original JSONObject in pagemap so im Fall, wenn Sie es brauchen, können Sie immer extrahieren.Es sei denn, es gibt eine Reihe von Definitionen, welche Art konnten wir in pagemap zusammen mit seinen Feldern, repräsentiert der Wert des pagemap als eine Klasse kann schwierig sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top