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

<Java工具類>json字符串、List Map,List 對(duì)象轉(zhuǎn)換為相應(yīng)的JavaBean對(duì)象

這篇具有很好參考價(jià)值的文章主要介紹了<Java工具類>json字符串、List Map,List 對(duì)象轉(zhuǎn)換為相應(yīng)的JavaBean對(duì)象。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

依賴:

		<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>
        <dependency>
		  	<groupId>com.fasterxml.jackson.core</groupId>
		  	<artifactId>jackson-annotations</artifactId>
		  	<version>2.9.7</version>
		</dependency>
		<dependency>
		  	<groupId>com.fasterxml.jackson.core</groupId>
		  	<artifactId>jackson-databind</artifactId>
		  	<version>2.9.8</version>
		</dependency>
		<dependency>
		  	<groupId>com.fasterxml.jackson.core</groupId>
		  	<artifactId>jackson-core</artifactId>
		  	<version>2.9.8</version>
		</dependency>

工具類(直接上代碼):

package com.itheima.common.util;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.beanutils.PropertyUtils;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;

	/**
     * 。
     * (1) 使用泛型方法:把json字符串轉(zhuǎn)換為相應(yīng)的JavaBean對(duì)象;
     *     轉(zhuǎn)換為普通JavaBean:readValue(json,Student.class);
     * (2) List Map轉(zhuǎn)換List 對(duì)象:如List<Student>,將第二個(gè)參數(shù)傳遞為Student;
     * (3) List 對(duì)象轉(zhuǎn)換List Map:
     *     [].class.然后使用Arrays.asList();方法把得到的數(shù)組轉(zhuǎn)換為特定類型的List;
     *
     * @param jsonStr
     * @param valueType
     * @return
     * 
     */

public final class JsonUtils {

    private static ObjectMapper objectMapper;

    /**
     * (1) 使用泛型方法:把json字符串轉(zhuǎn)換為相應(yīng)的JavaBean對(duì)象;
     *     轉(zhuǎn)換為普通JavaBean:readValue(json,Student.class);
     */
    public static <T> T readValue(String jsonStr, Class<T> valueType) throws Exception {
        if (objectMapper == null) {
            objectMapper = new ObjectMapper();
        }
        return objectMapper.readValue(jsonStr, valueType);
    }

    /**
     *(2).List Map轉(zhuǎn)換List 對(duì)象:如List<Student>,將第二個(gè)參數(shù)傳遞為Student對(duì)象;
     *    map轉(zhuǎn)換為bean
     */
    public static Object mapToObject(Map<String, String> map, Class<?> beanClass) throws Exception {
        if (map == null)
            return null;
        Object obj = beanClass.newInstance();
        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor property : propertyDescriptors) {
            Method setter = property.getWriteMethod();
            if (setter != null) {
                setter.invoke(obj, map.get(property.getName()));
            }
        }
        return obj;
    }
	
	/**
	 *(3).List 對(duì)象轉(zhuǎn)換List Map:
	 *    [].class.然后使用Arrays.asList();方法把得到的數(shù)組轉(zhuǎn)換為特定類型的List;
     *    bean轉(zhuǎn)換為map
     */
    public static <T> List<Map<String, Object>> listConvert(List<T> list){
        List<Map<String, Object>> list_map = new ArrayList<Map<String, Object>>();
        if (CollectionUtils.isNotEmpty(list)) {
            list.forEach(item ->{
                Map<String, Object> map = null;
                try {
                    map = PropertyUtils.describe(item);
                } catch (IllegalAccessException e) {
                    throw new RuntimeException(e);
                } catch (InvocationTargetException e) {
                    throw new RuntimeException(e);
                } catch (NoSuchMethodException e) {
                    throw new RuntimeException(e);
                }
                list_map.add(map);
            });
        }
        return list_map;
    }
}

使用場(chǎng)景:
(1).使用泛型方法:把json字符串轉(zhuǎn)換為相應(yīng)的JavaBean對(duì)象 ;
一般用于:Controller層:
例如:


	/**
     * 保存:表單數(shù)據(jù)(保存和修改功能)
     * 權(quán)限-管理員&專員
     *
     * @param param
     * @return
     */
    @PostMapping(value = "/saveFormData")
    @AuthInterceptor("mag:XXlist:saveFormData")
    public Result saveFormData(HttpServletRequest request,@RequestBody String param) {
        try {
            Map<String, Object> paramMap = JsonUtils.readValue(param, Map.class);
            String refreshToken = request.getHeader("refreshToken");
            Map<String, Object> current= tokenCache.getCurrentUsers(refreshToken);
            paramMap.put("createdNo",current.get("pmNo"));
            paramMap.put("createdBy",current.get("pmName"));
            return ListService.saveFormData(paramMap);
        } catch (Exception e) {
            log.error("XXController saveFormData is error===:" + e.getMessage(), e);
            return Result.failure("表單數(shù)據(jù)保存失敗!");
        }
    }
    

(2).List Map轉(zhuǎn)換List 對(duì)象:如List,將第二個(gè)參數(shù)傳遞為Student對(duì)象;


	public Result addTask(@RequestBody String param) {
        try {
            List<Map<String, String>> params = JsonUtils.readValue(param, List.class);
            //map轉(zhuǎn)化為對(duì)象
            StudentVo studentVo = (StudentVo)
                    JsonUtils.mapToObject(params.get(0), StudentVo.class);
            //代碼省略......        
            return Result.success().result("任務(wù)添加成功");
        } catch (Exception e) {
            log.error("===XXController addTask is error===:" + e.getMessage(), e);
            return Result.failure(e.getMessage());
        }
    }
    

(3).List 對(duì)象轉(zhuǎn)換List Map:文章來源地址http://www.zghlxwxcb.cn/news/detail-528037.html


	private List<Map<String, Object>> getHeaderssData() {
        QueryWrapper<ListFormTableVo> qw = new QueryWrapper<ListFormTableVo>();
        qw.orderByAsc("id");
        List<ListFormTableVo> list = ListFormTemplateMapper.selectList(qw);
        //List對(duì)象轉(zhuǎn)化為L(zhǎng)ist Map 
        List<Map<String, Object>> res = JsonUtils.listConvert(list);
        res = res.stream().filter(e -> (!e.get("headerField").equals("pmNo"))).
                filter(e -> (!e.get("headerField").equals("pmName"))).
                collect(Collectors.toList());
        return res;
    }
    

到了這里,關(guān)于<Java工具類>json字符串、List Map,List 對(duì)象轉(zhuǎn)換為相應(yīng)的JavaBean對(duì)象的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java-json相關(guān)轉(zhuǎn)換,JSONObject與實(shí)體類/map互轉(zhuǎn)、List/List<map>和JSONArray互轉(zhuǎn)、獲取JSONObject中的key value、字符串String轉(zhuǎn)換等

    博客背景是Java開發(fā)。json相關(guān)的轉(zhuǎn)換、取值等在日常開發(fā)中經(jīng)常使用,但有時(shí)候還是會(huì)忘記or遇到些奇奇怪怪的問題。以此記錄,提醒自己~不定期更新~ 實(shí)體類和JSONObject互轉(zhuǎn) Map和JSONObject互轉(zhuǎn) String轉(zhuǎn)JSONObject 實(shí)體類轉(zhuǎn)JSON字符串時(shí)不過濾NULL空值 獲取JSONObject中的key value List和

    2024年02月12日
    瀏覽(29)
  • alibaba.fastjson的使用(三)-- Map、List ==》JSON字符串

    目錄 1.使用到的方法為: 2. Map轉(zhuǎn)JSON字符串 3. List轉(zhuǎn)JSON字符串

    2024年02月08日
    瀏覽(20)
  • 根據(jù)Json字符串設(shè)計(jì)對(duì)應(yīng)的Java對(duì)象(使用fastjson和JSONUtil工具類驗(yàn)證)

    記錄 :467 場(chǎng)景 :根據(jù)Json字符串設(shè)計(jì)對(duì)應(yīng)的Java對(duì)象。使用fastjson的JSON和hutool的JSONUtil將Java對(duì)象轉(zhuǎn)換為Json字符串驗(yàn)證。 版本 :JDK 1.8,Spring?Boot 2.6.3,fastjson-2.0.33,hutool-all-5.8.12。 1.Json字符串 根據(jù)如下Json字符串設(shè)計(jì)Java對(duì)象。 2.對(duì)應(yīng)Java對(duì)象 2.1Java對(duì)象ProvinceDto (1)示例代碼 (2)解析代

    2024年02月11日
    瀏覽(28)
  • Java中l(wèi)ist轉(zhuǎn)json字符串

    例子: 有一個(gè)實(shí)體類StudentInfo 放在一個(gè)List中,為L(zhǎng)ist infoList; 現(xiàn)在需要把這個(gè)infoList 以字符串的形式存起來,示例如下: 下面示例代碼為將入?yún)nfoList轉(zhuǎn)為JSON字符串輸出 下面示例代碼為將JSON字符串轉(zhuǎn)為L(zhǎng)ist

    2024年02月09日
    瀏覽(25)
  • Java中 List 和 JSON字符串之間的相互轉(zhuǎn)換

    Java中 List 和 JSON字符串之間的相互轉(zhuǎn)換 List 轉(zhuǎn) JSON 字符串 前端js將后端的json字符串轉(zhuǎn)對(duì)象 JSON字符串轉(zhuǎn)List

    2024年04月23日
    瀏覽(33)
  • Java 字符串類型的JSON數(shù)組轉(zhuǎn)List<Object>或 List<實(shí)體類>

    Java 字符串類型的JSON數(shù)組轉(zhuǎn)List<Object>或 List<實(shí)體類>

    1.依賴 2.代碼 3.JSON數(shù)組 [ ? ? { ? ? ? ? \\\"_object_version\\\": 4, ? ? ? ? \\\"updateAuthorizers\\\": [ ? ? ? ? ], ? ? ? ? \\\"RELATED_POOL\\\": \\\"網(wǎng)絡(luò)云-大區(qū)金華可信11\\\", ? ? ? ? \\\"CLOUD\\\": \\\"大區(qū)網(wǎng)絡(luò)云\\\", ? ? ? ? \\\"modifier\\\": \\\"easyops\\\", ? ? ? ? ? }, ? ? { ? ? ? ? \\\"_object_version\\\": 4, ? ? ? ? \\\"updateAuthorizers\\\": [ ? ?

    2024年02月14日
    瀏覽(27)
  • java對(duì)象與Json字符串的相互轉(zhuǎn)換

    文章目錄 1.Json對(duì)象轉(zhuǎn)換為java 對(duì)象 2. Java對(duì)象轉(zhuǎn)換JSON 1.Json對(duì)象轉(zhuǎn)換為java 對(duì)象 導(dǎo)入jackson的相關(guān)jar包 創(chuàng)建Jackson核心對(duì)象 ObjectMapper 調(diào)用ObjectMapper的相關(guān)方法進(jìn)行轉(zhuǎn)換 2. Java對(duì)象轉(zhuǎn)換JSON 常見的解析器:Jsonlib,Gson,fastjson,jackson 1.導(dǎo)入jackson的相關(guān)jar包 2.創(chuàng)建Jackson核心對(duì)象 Obj

    2024年02月09日
    瀏覽(31)
  • java8 list對(duì)象string字符串求和

    Java 8 中可以使用 Stream API 和 reduce() 方法來對(duì) List 中的字符串進(jìn)行求和。 舉個(gè)例子,假設(shè)你有一個(gè) List 叫做 \\\"numbers\\\",你可以這樣求和: 或者這樣求和 這樣得到的結(jié)果就是 \\\"12345\\\"。 在這個(gè)例子中,我們使用 reduce() 方法對(duì) List 中的所有字符串進(jìn)行求和,其中第一個(gè)參數(shù)是初始值

    2024年02月15日
    瀏覽(33)
  • java中對(duì)象轉(zhuǎn)json字符串的常用方式

    1.使用Jackson庫: Jackson是一個(gè)常用且功能強(qiáng)大的Java庫,用于處理JSON數(shù)據(jù)。下面是使用Jackson將對(duì)象轉(zhuǎn)換為JSON字符串的示例: 需要依賴: 2.使用Gson庫: Gson是Google提供的一個(gè)Java庫,它可以處理JSON數(shù)據(jù)的序列化和反序列化。以下是使用Gson將對(duì)象轉(zhuǎn)換為JSON字符串的示例 相關(guān)依賴

    2024年02月07日
    瀏覽(20)
  • Java 解析多層嵌套json數(shù)據(jù)及json字符串與對(duì)象的相互轉(zhuǎn)換

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

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

    2024年02月04日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包