国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java解析JSON復雜數(shù)據的第三種思路

這篇具有很好參考價值的文章主要介紹了Java解析JSON復雜數(shù)據的第三種思路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、概述

接上篇 java解析json復雜數(shù)據的兩種思路 我們已經通過解析返回json字符串得到數(shù)據
現(xiàn)在改變思路, 按照如下流程獲取數(shù)據:

二、數(shù)據預覽

1. 接口json數(shù)據

https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=5&businessType=blog&username=qq_16127313

{
    "code":200,
    "message":"success",
    "traceId":"cec7dfb0-78f4-40c4-b1ce-7463b100e3fd",
    "data":{
        "list":[
            {
                "articleId":135418954,
                "title":"java解析json復雜數(shù)據的兩種思路",
                "description":"萌新小明最近新開了CSDN博客,蠢蠢欲動,迫不及待的發(fā)表了幾篇工作中積累下來的解決問題的涂鴉之作,看著訪問量慢慢漲起來,心中暗暗竊喜。現(xiàn)在小明想每天23點記錄一下每篇文章的訪問量。。。",
                "url":"https://blog.csdn.net/qq_16127313/article/details/135418954",
                "type":1,
                "top":false,
                "forcePlan":false,
                "viewCount":947,
                "commentCount":0,
                "editUrl":"https://editor.csdn.net/md?articleId=135418954",
                "postTime":"2024-01-06 14:11:40",
                "diggCount":16,
                "formatTime":"前天 14:11",
                "picList":[
                    "https://img-blog.yssmx.com/direct/a409a0f4555c459fa05c00fd9ee0ea8c.png"
                ],
                "collectCount":21
            },
            {
                "articleId":135244727,
                "title":"java lambda表達式訓練題一",
                "description":"Lambda 表達式,也可稱為閉包,它是推動 Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進方法中)。使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。",
                "url":"https://blog.csdn.net/qq_16127313/article/details/135244727",
                "type":1,
                "top":false,
                "forcePlan":false,
                "viewCount":1238,
                "commentCount":0,
                "editUrl":"https://editor.csdn.net/md?articleId=135244727",
                "postTime":"2023-12-27 18:07:30",
                "diggCount":7,
                "formatTime":"2023.12.27",
                "picList":[
                    "https://img-blog.yssmx.com/direct/d59c68b950754e879914b5319cd1b53f.png"
                ],
                "collectCount":8
            },
            {
                "articleId":135173565,
                "title":"二維碼初體驗 com.google.zxing 實現(xiàn)續(xù) - web api封裝",
                "description":"在 二維碼初體驗 com.google.zxing 實現(xiàn) 我們實現(xiàn)了二維碼的生成,但是大部分情況下,二維碼的相關功能是作為API接口來提供服務的。我們下面便演示在springboot、Knife4j下封裝api接口來實現(xiàn)二維碼生成功能。如何使用下面的備份文件恢復成原始的項目代碼,請移步查閱:神奇代碼恢復工具-over-",
                "url":"https://blog.csdn.net/qq_16127313/article/details/135173565",
                "type":1,
                "top":false,
                "forcePlan":false,
                "viewCount":1904,
                "commentCount":0,
                "editUrl":"https://editor.csdn.net/md?articleId=135173565",
                "postTime":"2023-12-23 20:17:11",
                "diggCount":23,
                "formatTime":"2023.12.23",
                "picList":[
                    "https://img-blog.yssmx.com/direct/f0c994ca789a495a8c8c03d86d626f24.jpeg"
                ],
                "collectCount":23
            },
            {
                "articleId":135167613,
                "title":"二維碼初體驗 com.google.zxing 實現(xiàn)",
                "description":"Java 操作二維碼的開源項目很多,如 SwetakeQRCode、BarCode4j、Zxing 等,這邊以Zxing 為例進行介紹。選擇需要生成QR原始文件,支持 “清除空白行及空格” 以減少二維碼圖片大小。支持輸入文本內容,直接生成二維碼代碼結構QrCodeUI: 完整版本代碼SimpleQrCodeUI:簡化版本代碼如何使用下面的備份文件恢復成原始的項目代碼,請移步查閱:神奇代碼恢復工具-over-",
                "url":"https://blog.csdn.net/qq_16127313/article/details/135167613",
                "type":1,
                "top":false,
                "forcePlan":false,
                "viewCount":1286,
                "commentCount":0,
                "editUrl":"https://editor.csdn.net/md?articleId=135167613",
                "postTime":"2023-12-23 13:52:23",
                "diggCount":6,
                "formatTime":"2023.12.23",
                "picList":[
                    "https://img-blog.yssmx.com/direct/d3eeac85857543869dce8967c570bdc4.jpeg"
                ],
                "collectCount":11
            },
            {
                "articleId":135135799,
                "title":"【隨筆】MD5加密字符串、文件apache、springframework實現(xiàn)",
                "description":"【代碼】【隨筆】MD5加密字符串、文件commons-codec、springframework實現(xiàn)。",
                "url":"https://blog.csdn.net/qq_16127313/article/details/135135799",
                "type":1,
                "top":false,
                "forcePlan":false,
                "viewCount":1721,
                "commentCount":0,
                "editUrl":"https://editor.csdn.net/md?articleId=135135799",
                "postTime":"2023-12-21 17:29:54",
                "diggCount":9,
                "formatTime":"2023.12.21",
                "picList":[
                    "https://img-blog.yssmx.com/direct/dc26b7f1c731494f80c8c3b3badfa95d.jpeg"
                ],
                "collectCount":9
            }
        ],
        "total":72
    }}


2. json轉xml數(shù)據

<?xml version="1.0" encoding="UTF-8"?><root>
  <code>200</code>
  <message>success</message>
  <traceId>cec7dfb0-78f4-40c4-b1ce-7463b100e3fd</traceId>
  <data>
    <list>
      <articleId>135418954</articleId>
      <title>java解析json復雜數(shù)據的兩種思路</title>
      <description>萌新小明最近新開了CSDN博客,蠢蠢欲動,迫不及待的發(fā)表了幾篇工作中積累下來的解決問題的涂鴉之作,看著訪問量慢慢漲起來,心中暗暗竊喜?,F(xiàn)在小明想每天23點記錄一下每篇文章的訪問量。。。</description>
      <url>https://blog.csdn.net/qq_16127313/article/details/135418954</url>
      <type>1</type>
      <top>false</top>
      <forcePlan>false</forcePlan>
      <viewCount>947</viewCount>
      <commentCount>0</commentCount>
      <editUrl>https://editor.csdn.net/md?articleId=135418954</editUrl>
      <postTime>2024-01-06 14:11:40</postTime>
      <diggCount>16</diggCount>
      <formatTime>前天 14:11</formatTime>
      <picList>https://img-blog.yssmx.com/direct/a409a0f4555c459fa05c00fd9ee0ea8c.png</picList>
      <collectCount>21</collectCount>
    </list>
    <list>
      <articleId>135244727</articleId>
      <title>java lambda表達式訓練題一</title>
      <description>Lambda 表達式,也可稱為閉包,它是推動 Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進方法中)。使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。</description>
      <url>https://blog.csdn.net/qq_16127313/article/details/135244727</url>
      <type>1</type>
      <top>false</top>
      <forcePlan>false</forcePlan>
      <viewCount>1238</viewCount>
      <commentCount>0</commentCount>
      <editUrl>https://editor.csdn.net/md?articleId=135244727</editUrl>
      <postTime>2023-12-27 18:07:30</postTime>
      <diggCount>7</diggCount>
      <formatTime>2023.12.27</formatTime>
      <picList>https://img-blog.yssmx.com/direct/d59c68b950754e879914b5319cd1b53f.png</picList>
      <collectCount>8</collectCount>
    </list>
    <list>
      <articleId>135173565</articleId>
      <title>二維碼初體驗 com.google.zxing 實現(xiàn)續(xù) - web api封裝</title>
      <description>在 二維碼初體驗 com.google.zxing 實現(xiàn) 我們實現(xiàn)了二維碼的生成,但是大部分情況下,二維碼的相關功能是作為API接口來提供服務的。我們下面便演示在springboot、Knife4j下封裝api接口來實現(xiàn)二維碼生成功能。如何使用下面的備份文件恢復成原始的項目代碼,請移步查閱:神奇代碼恢復工具-over-</description>
      <url>https://blog.csdn.net/qq_16127313/article/details/135173565</url>
      <type>1</type>
      <top>false</top>
      <forcePlan>false</forcePlan>
      <viewCount>1904</viewCount>
      <commentCount>0</commentCount>
      <editUrl>https://editor.csdn.net/md?articleId=135173565</editUrl>
      <postTime>2023-12-23 20:17:11</postTime>
      <diggCount>23</diggCount>
      <formatTime>2023.12.23</formatTime>
      <picList>https://img-blog.yssmx.com/direct/f0c994ca789a495a8c8c03d86d626f24.jpeg</picList>
      <collectCount>23</collectCount>
    </list>
    <list>
      <articleId>135167613</articleId>
      <title>二維碼初體驗 com.google.zxing 實現(xiàn)</title>
      <description>Java 操作二維碼的開源項目很多,如 SwetakeQRCode、BarCode4j、Zxing 等,這邊以Zxing 為例進行介紹。選擇需要生成QR原始文件,支持 “清除空白行及空格” 以減少二維碼圖片大小。支持輸入文本內容,直接生成二維碼代碼結構QrCodeUI: 完整版本代碼SimpleQrCodeUI:簡化版本代碼如何使用下面的備份文件恢復成原始的項目代碼,請移步查閱:神奇代碼恢復工具-over-</description>
      <url>https://blog.csdn.net/qq_16127313/article/details/135167613</url>
      <type>1</type>
      <top>false</top>
      <forcePlan>false</forcePlan>
      <viewCount>1286</viewCount>
      <commentCount>0</commentCount>
      <editUrl>https://editor.csdn.net/md?articleId=135167613</editUrl>
      <postTime>2023-12-23 13:52:23</postTime>
      <diggCount>6</diggCount>
      <formatTime>2023.12.23</formatTime>
      <picList>https://img-blog.yssmx.com/direct/d3eeac85857543869dce8967c570bdc4.jpeg</picList>
      <collectCount>11</collectCount>
    </list>
    <list>
      <articleId>135135799</articleId>
      <title>【隨筆】MD5加密字符串、文件apache、springframework實現(xiàn)</title>
      <description>【代碼】【隨筆】MD5加密字符串、文件commons-codec、springframework實現(xiàn)。</description>
      <url>https://blog.csdn.net/qq_16127313/article/details/135135799</url>
      <type>1</type>
      <top>false</top>
      <forcePlan>false</forcePlan>
      <viewCount>1721</viewCount>
      <commentCount>0</commentCount>
      <editUrl>https://editor.csdn.net/md?articleId=135135799</editUrl>
      <postTime>2023-12-21 17:29:54</postTime>
      <diggCount>9</diggCount>
      <formatTime>2023.12.21</formatTime>
      <picList>https://img-blog.yssmx.com/direct/dc26b7f1c731494f80c8c3b3badfa95d.jpeg</picList>
      <collectCount>9</collectCount>
    </list>
    <total>72</total>
  </data></root>


三、代碼實現(xiàn)

1. pom.xml

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webflux</artifactId>
			<version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>io.projectreactor.netty</groupId>
			<artifactId>reactor-netty</artifactId>
			<version>0.9.4.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>2.12.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.10</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-xml</artifactId>
			<version>2.10.2</version>
		</dependency>
		<dependency>
		    <groupId>org.dom4j</groupId>
		    <artifactId>dom4j</artifactId>
		    <version>2.1.4</version>
		</dependency>
		<dependency>
		    <groupId>jaxen</groupId>
		    <artifactId>jaxen</artifactId>
		    <version>2.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.5.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.12</version>
			<scope>provided</scope>
		</dependency>


2. 核心代碼

package com.fly.xml;import java.io.IOException;import java.io.StringReader;import java.nio.charset.StandardCharsets;import org.apache.commons.io.IOUtils;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.io.SAXReader;import org.junit.jupiter.api.BeforeAll;import org.junit.jupiter.api.Test;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import org.springframework.http.MediaType;import org.springframework.web.reactive.function.client.WebClient;import com.fasterxml.jackson.databind.JsonNode;import com.fasterxml.jackson.databind.json.JsonMapper;import com.fasterxml.jackson.dataformat.xml.XmlMapper;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class XmlTest{
    static JsonMapper jsonMapper = new JsonMapper();
    
    static XmlMapper xmlMapper = new XmlMapper();
    
    static WebClient webClient = WebClient.builder().codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(-1)).build(); 
    
   
    @Test
    public void testApi()
        throws IOException, DocumentException
    {
        //WebClient同步調用
        String url = "https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=5&businessType=blog&username=qq_16127313";
        String jsonText = webClient.get().uri(url).acceptCharset(StandardCharsets.UTF_8).accept(MediaType.APPLICATION_JSON).retrieve().bodyToMono(String.class).block();
       
        //json轉xml
        JsonNode jsonNode = jsonMapper.readTree(jsonText);
        String xml = xmlMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);
        
        // dom4j、XPath
        Document doc = new SAXReader().read(new StringReader(xml));
        doc.selectNodes("//data/list/url").stream().forEach(n -> log.info(n.getStringValue()));
        doc.selectNodes("//data/list/viewCount").stream().forEach(n -> log.info(n.getStringValue()));
    }}


3. 運行結果

Java,JSON,數(shù)據解析,XML

四、源碼傳送

https://gitee.com/00fly/effict-side/blob/master/springboot-cache/src/test/java/com/fly/test/restful/json/ParseJson.java


大家可以根據需要選擇方案,有任何問題和建議,都可以向我提問討論,大家一起進步,謝謝!

-over-文章來源地址http://www.zghlxwxcb.cn/news/detail-824016.html

到了這里,關于Java解析JSON復雜數(shù)據的第三種思路的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Java 解析多層嵌套json數(shù)據及json字符串與對象的相互轉換

    Java 解析多層嵌套json數(shù)據及json字符串與對象的相互轉換

    本文主要介紹java解析多層嵌套json數(shù)據以及字符串與JSON對象之間的相互轉換,包括:json字符串的取值,json對象與字符串的相互轉換,字符串轉化為java對象,字符串轉化為javaList列表等。 提示:以下是本篇文章正文內容,下面案例可供參考 數(shù)據格式:JSON實際上就是鍵值對(

    2024年02月04日
    瀏覽(32)
  • Java如何快速讀取&解析JSON數(shù)據(文件),獲取想要的內容?

    Java如何快速讀取&解析JSON數(shù)據(文件),獲取想要的內容?

    手打不易,如果轉摘,請注明出處! 注明原文: https://zhangxiaofan.blog.csdn.net/article/details/132764186 目錄 前言 準備工作 Json數(shù)據(示例) 解析Json文件 第一步:創(chuàng)建一個空類 第二步:使用?Gsonformat 插件 ?第三步:復制Json內容,創(chuàng)建對應類 第四步:讀取Json文件,提取目標數(shù)據

    2024年02月05日
    瀏覽(22)
  • 【mybatis-plus實體類復雜對象字段json自動相互轉換,以及自定義字段類型解析器】

    引言: mybatis-plus集合對象字段json如何自動進行相互的轉換? 怎樣在使用mybatis-plus操作數(shù)據表的時候自動對實體類屬性進行自動解析? 我們平時在做開發(fā)的時候,會遇到一個字段保存json串的情況。一般情況下mybatis-plus在做插入/更新之前將對象手動轉換成json串,查詢要用的時

    2023年04月13日
    瀏覽(17)
  • java對接第三方接口的三種方式

    在日常工作中,經常需要跟第三方系統(tǒng)對接,我們做為客戶端,調用他們的接口進行業(yè)務處理,常用的幾種調用方式有: 1.原生的Java.net.HttpURLConnection(jdk); 2.再次封裝的HttpClient、CloseableHttpClient(Apache); 3.Spring提供的RestTemplate; 當然還有其他工具類進行封裝的接口,比

    2024年04月28日
    瀏覽(26)
  • 如何使用 Java 將 JSON 文件讀取為字符串?這三種方法很管用!

    如何使用 Java 將 JSON 文件讀取為字符串?這三種方法很管用!

    JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據交換格式,它可以用來存儲和傳輸結構化的數(shù)據。在 Java 中,有多種方法可以將 JSON 文件讀取為字符串,本文將介紹其中的幾種。 java.io 包中提供了一些類,如 FileReader、BufferedReader、InputStreamReader 等,可以用來讀取文件的內容。

    2024年02月01日
    瀏覽(23)
  • Java解析SQL的基本思路

    天天在寫sql,一直很好奇sql到底咋解析的,于是隨便整個小demo。 比如sql是: 中間可能有1個或者多個空格,就想著怎么著也得有個分詞的類,就叫做Tokenizer吧。 這是一個名為Tokenizer的Java類,實現(xiàn)了Iterator接口。它用于將輸入的SQL語句進行分詞。 構造函數(shù)Tokenizer(String sql)接受

    2024年02月12日
    瀏覽(18)
  • java解析json

    代碼: 步驟: ??? 定義一個JSON數(shù)組,用于將服務器返回的數(shù)據傳入到一個JSONArray對象中; ??? 然后循環(huán)遍歷這個JSONArray,從中取出每一個元素(JSONObject對象); ??? 調用getString()方法即可將數(shù)據取出。 代碼: 參考:java解析json_java 解析json_五寶茶四娃的博客-CSDN博客

    2024年02月10日
    瀏覽(18)
  • java對于JSON的解析

    1.1、JSONObject JSONObject是一種在Java中表示JSON對象的數(shù)據結構。它是一個無序的鍵值對集合,用花括號({})包圍,并且每個鍵值對由冒號(:)分隔。 在Java中使用JSONObject,通常需要使用JSON庫(如Jackson、Gson等)進行解析和操作。以下是一些常見的JSONObject操作: 創(chuàng)建JSONObject:

    2024年02月08日
    瀏覽(24)
  • 【圖解數(shù)據結構】深度解析時間復雜度與空間復雜度的典型問題

    【圖解數(shù)據結構】深度解析時間復雜度與空間復雜度的典型問題

    ??個人主頁: 聆風吟 ??系列專欄: 圖解數(shù)據結構、算法模板 ??少年有夢不應止于心動,更要付諸行動。 上篇文章我們主要學習了: 算法的定義:算法是解決特定問題求解步驟的描述,在計算機中表現(xiàn)為指令的有限序列,并且每條指令表示一個或多個操作。 算法的特性:

    2024年01月20日
    瀏覽(14)
  • 【Java】HttpServlet類中前后端交互三種方式(query string、form表單、JSON字符串)

    【Java】HttpServlet類中前后端交互三種方式(query string、form表單、JSON字符串)

    在前后端的交互中,前端通過以下三種方式來與后端進行交互?? ?query string ?form表單 ?JSON字符串 下面我們將書寫這三種方式的后端代碼并進行講解 QueryString即在url中寫入鍵值對,一般用doGet方法進行交互 代碼如下? 用postman驗證 ? ?form表單一般用doPost方法進行交互 Jason是

    2024年01月19日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包