Notez que l'API de recherche de produits de Yahoo! Aura de nouvelles spécifications. https://developer.yahoo.co.jp/webapi/shopping/shopping/v3/itemsearch.html
La structure de JSON a changé en raison de la nécessité d'encoder les mots de recherche. Nous utiliserons Jackson pour gérer JSON. Veuillez vérifier l'introduction par vous-même.
Par rapport à l'ancienne spécification, le codage UTF-8 est requis.
java
//ID d'application
final String appID = "ID d'application";
//Rechercher le mot UTF-8 encodage
String query = request.getParameter("searchWord");
String encodedQuery = URLEncoder.encode(query, "UTF-8");
//Création d'URL
String url = "https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch"
+ "?appid=" + appID + "&query=" + encodedQuery;
URL conUrl = new URL(url);
//Lien
HttpURLConnection con = (HttpURLConnection)conUrl.openConnection();
con.connect();
Notez que la structure de JSON est différente des anciennes spécifications. Cette fois, nous allons extraire les 10 meilleurs noms de produits et prix des résultats de recherche.
java
//Lire la chaîne json
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json = br.readLine();
br.close();
//Convertir la chaîne json en JsonNode
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
//ArrayList qui stocke les JavaBeans
ArrayList<DataBeans> list = new ArrayList<>();
//Extraire les informations de 10 éléments et les stocker dans la liste
for(int i = 0; i < 10; i++){
//Puisque la valeur des hits est un tableau, spécifiez le numéro d'élément avec un entier.
String name = node.get("hits").get(i).get("name").textValue();
int price = node.get("hits").get(i).get("price").asInt();
//Définir les informations dans JavaBeans
DataBeans bean = new DataBeans();
bean.setName(name);
bean.setPrice(price);
list.add(bean);
}
request.setAttribute("resultData", list);
request.getRequestDispatcher("searchResult.jsp").forward(request, response);
Recommended Posts