java实现decode编码的json字符串参数服务端解析并创建对象
例:
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类的字段保持一直即可
评论区
请写下您的评论...
猜你喜欢
blog
c#对象和json字符串转换
算法基础
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指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符
ofc
mysql 字符串函数总结
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
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。