


Bagaimanakah Java memanggil antara muka untuk mendapatkan data json dan menyimpannya ke pangkalan data selepas menghuraikannya?
Java memanggil antara muka untuk mendapatkan data json dan menyimpannya ke pangkalan data
1 Konfigurasikan URL antara muka anda sendiri dalam fail yml
//自己定义的JSON接口URL blacklist_data_url: 接口URL
2 .Tambah kaedah permintaan dan laluan dalam Pengawal
/** * @Title: 查询 * @Description: 查询车辆的记录 * @Author: 半度纳 * @Date: 2022/9/27 17:33 */ @GetMapping("/Blacklist") public void selectBlacklist(){ boolean a = imBuBlacklistService.selectBlacklist();//调用业务层方法 }
3. Tambah kaedah
/** * @Title: 查询 * @Description: 查询车辆的记录 * @Author: 半度纳 * @Date: 2022/9/27 17:33 * @return */ public boolean selectBlacklist();//返回值类型没要求
dalam Perkhidmatan 4. Laksanakan kaedah
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.alibaba.fastjson2.JSON; @Value("${blacklist_data_url}") public String blacklist_data_url;//接口URL /** * @Title: 查询 * @Description: 查询车辆的记录 * @Author: 半度纳 * @Date: 2022/9/27 17:33 * @return */ @Override public boolean selectBlacklist() { //获取的JSON接口数据(在输出测试时sendGet方法可能会自动输出,具体需看底层代码) String list= HttpUtils.sendGet(blacklist_data_url); JSONObject j = JSON.parseObject(list);//将获取的JSON数据存储到变量中 if(j.getBoolean("success")){//获取success判断是否为空 JSONObject jsonData = j.getJSONObject("body");//解析JSON的body JSONArray jsonArray = jsonData.getJSONArray("data");//解析JSON的data数据 JSONObject row = null;//定义一个空变量 ImBuBlacklist buBlacklist=new ImBuBlacklist();//new一个实体类用来接收数据 for (int y = 0; y < jsonArray.size(); ++y) {//循环将JSON数据存储到数据库中 buBlacklist = new ImBuBlacklist();//new一个实体类存储数据 row = jsonArray.getJSONObject(y);//获取数组中的数据 //设置获取到的JSON号牌号码到实体类的相同字段中 buBlacklist.setPlateNumber(row.getString("mechanicalNumber")); //设置获取到的JSON车辆类型到实体类的相同字段中 buBlacklist.setVehicleType(row.getString("machType")); //设置获取到的JSON检查日期到实体类的相同字段中 buBlacklist.setExamineDate(row.getDate("createDate")); //设置获取到的JSON检查地点到实体类的相同字段中 buBlacklist.setExamineAddress(row.getString("machineAddr")); //设置获取到的JSON违规行为到实体类的相同字段中 buBlacklist.setIllegalBehavior(row.getString("joinTheBlacklistReason")); //设置获取到的JSON黑名单类型到实体类的相同字段中 buBlacklist.setBlacklistType(row.getInteger("violations")); //通过mapper的新增方法,把实体类中的JSON数据存到数据库中 imBuBlacklistMapper.insertImBuBlacklist(buBlacklist); } return true;//自己定义的返回值(没有用) }else{ return false; } }
dalam ServiceImpl untuk memanggil antara muka dan menghuraikan aksara Json Serialkan dan simpan dalam pangkalan data
Dapatkan rentetan json melalui antara muka api
Dapatkan data antara muka melalui permintaan get(httpGet) Pada asasnya terdapat enam langkah untuk menggunakan HttpClient:
-
Buat tika HttpClient
Buat tika kaedah sambungan tertentu
Panggil laksanakan kaedah contoh HttpClient untuk melaksanakan kaedah permintaan
Baca respons
Lepaskan sambungan tanpa mengira sama ada kaedah pelaksanaan berjaya atau tidak
//创建httpClient实例 CloseableHttpClient client = HttpClients.createDefault(); //汽车之家api接口 String apiPath = "https://www.autohome.com.cn/ashx/index/GetHomeFindCar.ashx"; //创建get方法请求实例 HttpGet httpGet = new HttpGet(apiPath); //添加表头,text/xml表示XML格式 httpGet.addHeader("content-type","text/xml"); //调用HttpClient实例执行GET实例,返回response HttpResponse response = client.execute(httpGet); //解析response,这个过程主要取决于获取的json格式,是一个对象还是一个数组,放到后面详解 String result = EntityUtils.toString(response.getEntity()); //释放连接 response.close(); client.close();
di mana kami boleh membalas menilai status (nyatakan) untuk mengesahkan sama ada data diperolehi Nilai status permintaan halaman adalah: 200 permintaan berjaya, 303 ubah hala. 400 ralat permintaan, 401 tidak dibenarkan, 403 akses dilarang, 404 fail tidak ditemui, 500 ralat pelayan .
(HttpStatus.OK = 200;HttpStatus.BAD_REQUEST = 400;HttpDENStatus.40Status;HttpDEN = 40Status NOT_FOUND = 404;HttpStatus.SERVICE_UNAVAILABLE =500)
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { String result = EntityUtils.toString(response.getEntity());//解析response }//getStatusLine()方法返回保存请求状态的StatusLine对象,getStatusCode()获取状态码
Gunakan JSONArray dan JSONObject untuk menghuraikan rentetan json
Sebelum menghuraikan rentetan json, kita mesti menentukan format rentetan json terlebih dahulu . Kaedah penghuraian yang berbeza harus digunakan untuk format yang berbeza Berikut ialah beberapa format String json
Contohnya: nilai berangka, rentetan, tatasusunan, tatasusunan objek atau objek tatasusunan kurungan segi empat sama. Pastikan anda memberi perhatian kepada dua simbol ini, yang boleh menyebabkan ralat penghuraian json
//json数值 { "key" : 520, "key1" : 1314 } //json字符串 { "key" : "我爱你", "key1" : "一生一世" } //json数组 { "key" : [520, 1314], "key1" : [520, 3344] } //json对象数组 { "我" : [ {"key": "我爱你"}, {"key1": "一生一世"} ] } //json数组对象 { "我" : { [520,1314], ["我爱你", "一生一世"] } }
Ia boleh dilihat bahawa rentetan json yang diperoleh daripada Autohome berada dalam json. format tatasusunan, jadi kita perlu menggunakan JSONArray untuk menghuraikan, dan kemudian melintasi tatasusunan json, Dapatkan setiap objek json, dan kemudian baca data daripada objek json.
//将json字符串解析成json数组的形式 JSONArray jsonArray = JSONArray.parseArray(result); //利用遍历解析json数组,并在循环中解析每一个json对象 for (int i = 0; i < jsonArray.size(); i++) { //将json数组解析为每一个jsonObject对象 JSONObject object=jsonArray.getJSONObject(i); //实例化一个dao层或者domain层的对象 CarBrand Brand = new CarBrand(); //将json对象中的数据写入实例化的对象中 //注意object读取的字段要和json对象中的字段一样,否则无法解析 Brand.setId(object.getInteger("id")); Brand.setName(object.getString("name")); Brand.setGroup(object.getString("letter")); }
Simpan data objek yang diinstantiasi ke dalam pangkalan data
Dalam rangka kerja springboot, mybatis-generator boleh menjana fail entiti lapisan Domain, fail xml, fail pemeta dan fail perkhidmatan yang sepadan Menggunakan pemalam ini boleh menjimatkan masa kami menulis penyata sql panggil kaedah yang sepadan dalam lapisan perkhidmatan.
//调用service层的add方法,直接将实例化对象写入数据库 CarBrandService.add(Brand);
Kod lengkap Seperti berikut
package org.linlinjava.litemall.admin.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.linlinjava.litemall.db.dao.LitemallCarBrandMapper; import org.linlinjava.litemall.db.domain.LitemallCarBrand; import org.linlinjava.litemall.db.service.LitemallCarBrandService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @Service public class AdminCarBrandService { @Autowired CarBrandService carBrandService; public void httpRequest() { //使用httpclient获取api数据 CloseableHttpClient client = HttpClients.createDefault(); String apiPath = "https://www.autohome.com.cn/ashx/index/GetHomeFindCar.ashx"; HttpGet httpGet = new HttpGet(apiPath); try{ httpGet.addHeader("content-type","text/xml"); HttpResponse response = client.execute(httpGet); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { //对获取的string数据进行json解析 String result = EntityUtils.toString(response.getEntity()); JSONArray jsonArray = JSONArray.parseArray(result); for (int i = 0; i < jsonArray.size(); i++) { //将json对象中的数据写入实例化对象中 CarBrand carBrand = new CarBrand(); JSONObject object=jsonArray.getJSONObject(i); carBrand.setId(object.getInteger("id")); carBrand.setName(object.getString("name")); carBrand.setGroup(object.getString("letter")); //将实例化对象存入数据库 carBrandService.add(CarBrand); } } }catch (Exception e){ throw new RuntimeException(e); } } }
Atas ialah kandungan terperinci Bagaimanakah Java memanggil antara muka untuk mendapatkan data json dan menyimpannya ke pangkalan data selepas menghuraikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;
