java
à maven
gson version 2.8.6 utilisée Site avec explication https://qiita.com/naoi/items/6b184700b2a41fb46356
Utilisez okhttp version 3.7.0 Site d'explication https://square.github.io/okhttp/
   <dependency>
  		<groupId>com.google.code.gson</groupId>
  		<artifactId>gson</artifactId>
  		<version>2.8.6</version>
  	</dependency> 
    <dependency>
  		<groupId>com.squareup.okhttp3</groupId>
  		<artifactId>okhttp</artifactId>
  		<version>3.7.0</version>
  	</dependency>
google books api Page Officielle https://developers.google.com/books/
Cette fois, le code lu par isbn avec le lecteur de code barre sera envoyé en tant que demande, donc le code ci-dessous sera utilisé.
https://www.googleapis.com/books/v1/volumes?q=isbn:Code Isbn à l'arrière
//Cela ressemble à ci-dessous
https://www.googleapis.com/books/v1/volumes?q=isbn:9784844336778
Je ne suis pas sûr d'être honnête S'il existe un moyen de comprendre la hiérarchie, veuillez la publier
// 20200101165936
// https://www.googleapis.com/books/v1/volumes?q=isbn:9784844336778
{
  "kind": "books#volumes",
  "totalItems": 1,
  "items": [
    {
      "kind": "books#volume",
      "id": "FQKOBAAAQBAJ",
      "etag": "YZLyBEypyf4",
      "selfLink": "https://www.googleapis.com/books/v1/volumes/FQKOBAAAQBAJ",
      "volumeInfo": {
        "title": "Une introduction rafraîchissante à Java Practical Edition 2nd Edition",
        "authors": [
          "Kiyotaka Nakayama"
        ],
        "publisher": "Impress Co., Ltd.",
        "publishedDate": "2014-09-22",
        "description": "Présentation d'une version révisée qui complète l'explication des fonctionnalités notables de Java 8 telles que l'expression lambda et l'API de date, et renforce complètement l'explication des modèles de conception et liés à l'agilité! Comme pour le livre soeur "Introduction à Java", l'explication se poursuivra en répondant "Pourquoi?" Fermement, donc des connaissances indispensables pour maîtriser Java au travail, telles que les expressions régulières, les collections, la liaison de bases de données, le refactoring, le traitement parallèle, etc. Cependant, il est rafraîchissant, amusant et facile à apprendre. Recommandé pour ceux qui ont compris la grammaire de base et les concepts orientés objet et qui souhaitent aller encore plus loin. Problème",
        "industryIdentifiers": [
          {
            "type": "ISBN_13",
            "identifier": "9784844336778"
          },
          {
            "type": "ISBN_10",
            "identifier": "4844336770"
          }
        ],
        "readingModes": {
          "text": false,
          "image": true
        },
        "pageCount": 628,
        "printType": "BOOK",
        "categories": [
          "Computers"
        ],
        "maturityRating": "NOT_MATURE",
        "allowAnonLogging": true,
        "contentVersion": "2.3.0.0.preview.1",
        "panelizationSummary": {
          "containsEpubBubbles": false,
          "containsImageBubbles": false
        },
        "imageLinks": {
          "smallThumbnail": "http://books.google.com/books/content?id=FQKOBAAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api",
          "thumbnail": "http://books.google.com/books/content?id=FQKOBAAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"
        },
        "language": "ja",
        "previewLink": "http://books.google.co.jp/books?id=FQKOBAAAQBAJ&printsec=frontcover&dq=isbn:9784844336778&hl=&cd=1&source=gbs_api",
        "infoLink": "https://play.google.com/store/books/details?id=FQKOBAAAQBAJ&source=gbs_api",
        "canonicalVolumeLink": "https://play.google.com/store/books/details?id=FQKOBAAAQBAJ"
      },
      "saleInfo": {
        "country": "JP",
        "saleability": "FOR_SALE",
        "isEbook": true,
        "listPrice": {
          "amount": 2596.0,
          "currencyCode": "JPY"
        },
        "retailPrice": {
          "amount": 2336.0,
          "currencyCode": "JPY"
        },
        "buyLink": "https://play.google.com/store/books/details?id=FQKOBAAAQBAJ&rdid=book-FQKOBAAAQBAJ&rdot=1&source=gbs_api",
        "offers": [
          {
            "finskyOfferType": 1,
            "listPrice": {
              "amountInMicros": 2596000000,
              "currencyCode": "JPY"
            },
            "retailPrice": {
              "amountInMicros": 2336000000,
              "currencyCode": "JPY"
            }
          }
        ]
      },
      "accessInfo": {
        "country": "JP",
        "viewability": "PARTIAL",
        "embeddable": true,
        "publicDomain": false,
        "textToSpeechPermission": "ALLOWED",
        "epub": {
          "isAvailable": false
        },
        "pdf": {
          "isAvailable": true,
          "acsTokenLink": "http://books.google.co.jp/books/download/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80_%E5%AE%9F%E8%B7%B5-sample-pdf.acsm?id=FQKOBAAAQBAJ&format=pdf&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"
        },
        "webReaderLink": "http://play.google.com/books/reader?id=FQKOBAAAQBAJ&hl=&printsec=frontcover&source=gbs_api",
        "accessViewStatus": "SAMPLE",
        "quoteSharingAllowed": false
      },
      "searchInfo": {
        "textSnippet": "Présentation d'une version révisée qui complète l'explication des fonctionnalités notables de Java 8 telles que l'expression lambda et l'API de date, et renforce complètement l'explication des modèles de conception et liés à l'agilité! Comme le livre jumeau "Introduction à Java", "Pourquoi?"..."
      }
    }
  ]
}
https://qiita.com/riversun/items/cdd990e96c2bbf9cb043 Sur cette page, j'ai fait référence à la génération automatique d'une classe de modèle (pojo) à l'aide de jsonschema2pojo.
Le contenu de la classe Model
@SerializeName ("nom") @Expose nom de type public
Puisque les éléments sont des "éléments": [], ce sera List 
La classe de modèle est générée automatiquement, mais elle peut être insuffisante, veuillez donc créer celle qui n'est pas générée par vous-même.
package main;
import java.io.IOException;
import java.util.List;
import com.example.qson.Item;
import com.example.qson.ListPrice;
import com.example.qson.Model;
import com.example.qson.SaleInfo;
import com.example.qson.VolumeInfo;
import com.google.gson.Gson;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class main {
    public static final String url = "https://www.googleapis.com/books/v1/volumes?q=isbn:";
    public static void main(String[] args) {
        //code isbn
        Long isbn = 9784844336778L;
        //Tenez json
        String json = "";
        OkHttpClient okHttpClient;
        okHttpClient = new OkHttpClient();
        Request.Builder builder = new Request.Builder();
        //Insérez l'adresse pour envoyer la demande avec l'url
        builder.url(url + isbn);
        Request request = builder.build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
            //J'ai les informations json renvoyées par l'API Web comme décrit ci-dessus sur json ici
            json = response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Gson gson = new Gson();
        Model models = gson.fromJson(json, Model.class);
        List<Item> items2 = models.items;
        VolumeInfo  volumeInfo = items2.get(0).volumeInfo;
        ImageLinks imageLinks = volumeInfo.imageLinks;
        SaleInfo saleInfo = items2.get(0).saleInfo;
        ListPrice listPrice = saleInfo.listPrice;
        //Lorsque le titre est écrit à partir de la classe de modèle
        //la classe d'éléments est List<Item>Parce que c'est un type.get()Attacher
        System.out.println(models.items.get(0).volumeInfo.title);//title
        //Lorsque la classe de modèle est remplacée par la classe volumeinfo et affichée
        System.out.println("title: "    + volumeInfo.title);//title
        System.out.println("author: "   + volumeInfo.authors);//author
        System.out.println("Date de publication: "   + volumeInfo.publishedDate);//publishedDate
        System.out.println("l'éditeur: "   + volumeInfo.publisher);//publisher
        System.out.println("Liste des prix:"      + listPrice.amount);
        System.out.println("La description:"     + volumeInfo.description);//description
        System.out.println("nombre de pages:" + volumeInfo.pageCount);//pageCount
        System.out.println("Petite vignette:" + imageLinks.smallThumbnail);//smallThumbnail
        System.out.println("la vignette:"         + imageLinks.thumbnail);//thumbnail
    }
}
J'ai pu aller au sentiment
java
à maven
Utilisez okhttp version 3.7.0 Site d'explication https://square.github.io/okhttp/
jackson
version jackson-core: 2.10.0 version de jackson-annotations: 2.10.0 version jackson-databind: 2.10.0
Est mis en
  <dependency>
  		<groupId>com.fasterxml.jackson.core</groupId>
  		<artifactId>jackson-core</artifactId>
  		<version>2.10.0</version>
  	</dependency>
  	<dependency>
  		<groupId>com.fasterxml.jackson.core</groupId>
  		<artifactId>jackson-annotations</artifactId>
  		<version>2.10.0</version>
  	</dependency>
  	<dependency>
  		<groupId>com.fasterxml.jackson.core</groupId>
  		<artifactId>jackson-databind</artifactId>
  		<version>2.10.0</version>
  	</dependency>
    <dependency>
  		<groupId>com.squareup.okhttp3</groupId>
  		<artifactId>okhttp</artifactId>
  		<version>3.7.0</version>
  	</dependency>
import java.io.IOException;
import java.sql.Date;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class main {
    public static final String url = "https://www.googleapis.com/books/v1/volumes?q=isbn:";
    public static void main(String[] args) {
        //TODO talon de méthode généré automatiquement
        Long isbn = 9784295007807L;
        //Tenez json
        String json ="";
        //Titre de livre
        String title = "";
        //auteur
        String author = "";
        //Date de publication
        Date publishedDate = null;
        String day = "";
        //l'éditeur
        String publisher = "";
        //Liste des prix
        Integer listPrice = null;
        //Texte explicatif
        String description = "";
        //nombre de pages
        Integer pageCount = null;
        //petite vignette
        String smallThumbnail ="";
        //la vignette
        String thumbnail = "";
        OkHttpClient okHttpClient;
        okHttpClient = new OkHttpClient();
        Request.Builder builder = new Request.Builder();
        //Insérez l'adresse pour envoyer la demande avec l'url
        builder.url(url + isbn);
        Request request = builder.build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
            json = response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //Afficher le contenu de json
        System.out.println(json);
        //Traitement pour retirer le contenu de json d'ici et l'afficher
        ObjectMapper mapper = new ObjectMapper();
        try {
            JsonNode node = mapper.readTree(json);
             //get("value")La valeur est de json"title": "Une introduction rafraîchissante à Java Practical Edition 2nd Edition"
             //La partie titre sera la valeur
             //Puisque le titre est un type de chaîne, à la fin.asText();Attacher
             title =          node.get("items").get(0).get("volumeInfo").get("title").asText();
             author =         node.get("items").get(0).get("volumeInfo").get("authors").get(0).asText();
             publisher =      node.get("items").get(0).get("volumeInfo").get("publisher").asText();
             //Reçu sous forme de jour de chaîne pour convertir la date de publication en type Date
             day = node.get("items").get(0).get("volumeInfo").get("publishedDate").textValue();
             //Convertir la chaîne en type SQL Date
             publishedDate =  Date.valueOf(day);
             //listPrice est de type int, donc à la fin.asInt();Attacher
             listPrice =      node.get("items").get(0).get("saleInfo").get("listPrice").get("amount").asInt();
             description =    node.get("items").get(0).get("volumeInfo").get("description").asText();
             pageCount =      node.get("items").get(0).get("volumeInfo").get("pageCount").asInt();
             smallThumbnail = node.get("items").get(0).get("volumeInfo").get("imageLinks").get("smallThumbnail").asText();
             thumbnail =      node.get("items").get(0).get("volumeInfo").get("imageLinks").get("thumbnail").asText();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("title: " +title);
        System.out.println("author: " +author);
        System.out.println("l'éditeur: "+publisher);
        System.out.println("Date de publication: " + publishedDate);
        System.out.println("Liste des prix: " + listPrice + "Cercle");
        System.out.println("Texte explicatif: " + description);
        System.out.println("nombre de pages: " + pageCount);
        System.out.println("Petite vignette: " + smallThumbnail);
        System.out.println("la vignette: " +thumbnail);
    }
}
J'ai pu le faire comme ça
Recommended Posts