java实现decode编码的json字符串参数服务端解析并创建对象

硅谷探秘者 3345 0 0
例:

java类如下:

public class QuestionnaireSubject {
	private Integer id;
	private String name;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

 则 ajax 需要传输的json字符串为

{id:1,name:'wang'}

后台将这个字符串创建为一个对象

依赖fastjson:
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
		<dependency>
		    <groupId>com.alibaba</groupId>
		    <artifactId>fastjson</artifactId>
		    <version>1.2.62</version>
		</dependency>
前端js编码:

将一个对象转成json字符串后编码 

encodeURIComponent(JSON.stringify(data))

后端转换工具:

import java.io.UnsupportedEncodingException;
import com.alibaba.fastjson.JSON;
public class JsonToObjectUtil {
	
	/**
	 * 	decode编码的json字符串转对象
	 * @param <T>
	 * @param json
	 * @param c
	 * @return
	 */
	public static <T> T toObject(String json,Class<T> c) {
		if(json==null||"".equals(json)) 
			return null;
		try {
			//解码
			json= java.net.URLDecoder.decode(json,"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return null;
		} 
		//字符串转换对象
		T t = JSON.parseObject(json,c);
        return t;
	}
}
测试接口
	@RequestMapping("test")
	public synchronized void test(String json){
		QuestionnaireSubject q = null;
		try {
			q = JsonToObjectUtil.toObject(json,QuestionnaireSubject.class);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

只要保证json字符串的格式和QuestionnaireSubject类的字段保持一直即可


评论区
请写下您的评论...
暂无评论...
猜你喜欢
算法基础 1410 c#json转换usingSystem; usingSystem.Runtime.Serialization.Json; usingSystem.IO; usingSystem.Text
weblog 2122 /groupId artifactIdfastjson/artifactId version1.2.62/version /dependency后 publicsynchronizedvoidm
mqtt协议 1603 能表示据包大小最大值是256M。  剩余长度,可理为128进制运算。如果低位节满128,则向高位节进1。那么进位系就是128。  下面是用一段代描述剩余长度计算方
框架 4429 springboot请求json据不返回指定段在体类段上加上注importcom.fasterxml.jackson.annotation.JsonIgnore;例
java虚拟机(jvm) 2464 这里以HotSpot为例,且所说指普通Java,不包括组和Class等。考资料深入理java虚拟机《周志明》1.内存布局HotSpot虚拟机中,在内存中存储布局可以
official 1481 器和器在网络应用中需要某种器,将原始据与自定义消息进行互相转换。网络中都是以据形式来传输据后发送到客户,客户需要据进行
java虚拟机(jvm) 4455 (文中讨论限于普通Java,不包括组和Class等)又是怎样一个过程呢?虚拟机遇到一条new指令时,首先将去检查这个指令是否能在常量池中定位到一个类号引用,且检查这个
weblog 1980 SelectORD(‘a’)-:973.CONV(N,from_base,to_base)n进制转换,转换为返回,N是要转换据,from_base是原进制,to_base是目标进制。selectCO
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1 2024-08  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript 加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。