[Java] Neue Spezifikation Implementierung der Yahoo! -Produktsuch-API

Beachten Sie, dass die Produktsuch-API von Yahoo! neue Spezifikationen enthält. https://developer.yahoo.co.jp/webapi/shopping/shopping/v3/itemsearch.html

Die Struktur von JSON hat sich geändert, da Suchwörter codiert werden müssen. Wir werden Jackson verwenden, um JSON zu handhaben. Bitte überprüfen Sie die Einführung selbst.

Dinge die zu tun sind

  1. Senden Sie das von HTML empfangene Suchwort an die API.
  2. Empfangen Sie den JSON, extrahieren Sie die erforderlichen Informationen und leiten Sie sie weiter.

1. Senden Sie das von HTML empfangene Suchwort an die API.

Als Änderung gegenüber der alten Spezifikation ist eine UTF-8-Codierung erforderlich.

java


//Anwendungs-ID
final String appID = "Anwendungs-ID";

//Suchwort UTF-8 Kodierung
String query = request.getParameter("searchWord");
String encodedQuery = URLEncoder.encode(query, "UTF-8");

//URL-Erstellung
String url = "https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch"
               + "?appid=" + appID + "&query=" + encodedQuery;
URL conUrl = new URL(url);

//Verbinden
HttpURLConnection con = (HttpURLConnection)conUrl.openConnection();
con.connect();

2. Empfangen Sie den JSON, extrahieren Sie die erforderlichen Informationen und leiten Sie sie weiter.

Beachten Sie, dass sich die Struktur von JSON von den alten Spezifikationen unterscheidet. Dieses Mal werden wir die Top 10 Produktnamen und Preise aus den Suchergebnissen extrahieren.

java


//Lesen Sie die JSON-Zeichenfolge
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json = br.readLine();
br.close();

//Konvertieren Sie die JSON-Zeichenfolge in JsonNode
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);

//ArrayList, in der JavaBeans gespeichert sind
ArrayList<DataBeans> list = new ArrayList<>();

//Extrahieren Sie Informationen für 10 Elemente und speichern Sie sie in der Liste
for(int i = 0; i < 10; i++){
  //Da der Wert von Treffern ein Array ist, geben Sie die Elementnummer mit einer Ganzzahl an.
  String name = node.get("hits").get(i).get("name").textValue();
  int price = node.get("hits").get(i).get("price").asInt();
  
  //Legen Sie Informationen in JavaBeans fest
  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

[Java] Neue Spezifikation Implementierung der Yahoo! -Produktsuch-API
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
[Java] Erstellen Sie so etwas wie eine Produktsuch-API
Beispielcode zum Aufrufen der Yahoo! Local Search API in Java
Beispielcode zum Aufrufen der Yahoo! Shopping Product Search (v3) -API mit der offiziell von Java 11 eingeführten HTTP-Client-API
Java Stream API
[Java] Holen Sie sich Bilder mit der Google Custom Search API
Beispielcode zum Aufrufen der Yahoo! Shopping Product Search (v3) -API mit Spring RestTemplate
Java1.8 neue Funktionen
Rufen Sie die Amazon Product Advertising API 5.0 (PA-API v5) in Java auf
Implementierung der Rails-Hashtag-Suche
Zusammenfassung der neuen Funktionen von Java 12
Überprüfen Sie die Implementierung von Java toString ()
Zusammenfassung der neuen Funktionen von Java 13
[Java] Stream API / Map
Implementierung der Suchfunktion
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
Suchfunktion [Implementierung kopieren und einfügen]
Was ist neu in Java 8?
Zusammenfassung der neuen Funktionen von Java 10
Zusammenfassung der neuen Funktionen von Java 14
Was ist neu in Java 9,10,11