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字符串转换
算法基础
600
c#对象和json字符串转换usingSystem;
usingSystem.Runtime.Serialization.Json;
usingSystem.IO;
usingSystem.Text
weblog
881
/groupId artifactIdfastjson/artifactId version1.2.62/version /dependency后端代码 publicsynchronizedvoidm
mqtt协议
359
能表示数据包大小的最大值是256M。 对剩余长度字段的编解码,可理解为128进制的运算。如果低位字节满128,则向高位字节进1。那么进位系数就是128。 下面是用一段代码描述对剩余长度字段的计算方
框架
2244
springboot请求json数据不返回对象的指定字段在实体类的字段上加上注解importcom.fasterxml.jackson.annotation.JsonIgnore;例
java虚拟机(jvm)
1478
这里以HotSpot为例,且所说的对象指普通的Java对象,不包括数组和Class对象等。参考资料深入理解java虚拟机《周志明》1.对象的内存布局HotSpot虚拟机中,对象在内存中存储的布局可以
official
345
编码器和解码器在网络应用中需要实现某种编解码器,将原始字节数据与自定义的消息对象进行互相转换。网络中都是以字节码的数据形式来传输数据的,服务器编码数据后发送到客户端,客户端需要对数据进行解码
java虚拟机(jvm)
3440
(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符
ofc
mysql 字符串函数总结
weblog
1177
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月
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
目录
祝愿神州十三飞行乘组平安归来