Question

Je suis très nouveau pour JSON, google api. Alors, s'il vous plaît guide.
Je suis en train d'écrire une application dans « JAVA » qui utiliserait serch Google Custom api par reposants. Je commencé à apprendre JSON et en passant par [lien] http://code.google.com /apis/customsearch/v1/overview.html je voulais écrire un code.

Cela montre le JSON de recherche google:
http://code.google.com/apis/customsearch/v1/reference .html # method_search_cse_list

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

A partir de la référence que j'ai trouvé que les champs de cette CustomSearch seraient cordes ou int ou tout autre type de données. Ils ont également défini la structure de chaque objet.

Mais je suis confronté à des problèmes avec certains types de données:

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.

Comment pourrais-je les définir dans ma classe. ce type de tableau est une chaîne de titre ou char et ce pagemap est une convention ou un site peut donner ses propres balises.

// CustomSearch class

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;    

}

Était-ce utile?

La solution

Je publié une recherche à l'aide réelle ma clé comme suggéré dans l'exemple de Google:

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

Et voici ce que je reçois (montrant juste bit de données)

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"
     }
    ]
   }
  ......

Il ressemble à:

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

Cela ressemble à un type de données chaîne de groupe de résultats que je reçois, donc je ne sais pas pourquoi la référence a classé comme tableau

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

Cela ressemble à un type de données chaîne ainsi des résultats que j'ai eu

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.

Basé sur le PageMap Description cela ressemble à un arbitraire valeur clé de données paire que le site pourrait fournir.

Voici quelques-unes des PageMap que je reçois de mon test pour votre référence:

 "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;"
     }
    ]

pagemap est très peu structurée je les stocker Map<String, JSONObject> pagemap. Comme vous pouvez le voir que je viens de garder le JSONObject original pagemap donc au cas où si vous en avez besoin, vous pouvez toujours l'extraire. À moins d'un ensemble de définitions de quel type que nous pourrions mettre en pagemap avec ses champs, ce qui représente la valeur de la pagemap en tant que classe pourrait être difficile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top