「javajson枚举」java中枚举
本篇文章给大家谈谈javajson枚举,以及java中枚举对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、用Java语言:从下列Json数组中只展示“productTypeName=公路零担”的数据集?
- 2、Spring Boot 前端请求参数自动映射到枚举,后端响应JSON数据自动解析枚举
- 3、java如何将接收到的数字自动转换为枚举
- 4、java 枚举类怎么转换成json
- 5、nodejs调用java代码 其中java写的方法要传入一个枚举类型的参数,nodejs有枚举类型吗?
- 6、Java中哪个JSON库的解析速度是最快的
用Java语言:从下列Json数组中只展示“productTypeName=公路零担”的数据集?
java处理json,最经典的做法还是将String字符串转换成对象来处理。
需要借助第三方jar包,常见的第三方json处理jar包有:阿里巴巴的fastjson,谷歌的gson还有诸如jackson之类的。
我习惯用gson:
1、引入gson依赖或去网上下载其jar包:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.3.1/version
/dependency
2、根据json串,定义对象:
首先定义json最外层,我称其为Response,Response中有根节点data:
这里我用了lombok的@Data注解,自动生成getter、setter、toString等方法。
然后定义了根节点对象Data1,里面有Record集合records:
之后就是定义Record的各个字段:
现在我就有了完整的数据结构,使用gson进行转换即可:
接下来拿着response对象进行正常的java逻辑处理就行:
完整代码:
public class TController {
public static void main(String[] args) {
String jsonString = "{\n" +
"\"data\":{\n" +
"\"records\":[\n" +
"{\n" +
"\"couponName\":\"\",\n" +
"\"payTime\":\"2021-11-15 11:11:33\",\n" +
"\"providerEndAddress\":\"\",\n" +
"\"paidMoney\":268,\n" +
"\"weihuUserId\":\"0\",\n" +
"\"productTypeName\":\"公路零担\"\n" +
"},\n" +
"{\n" +
"\"couponName\":\"\",\n" +
"\"payTime\":\"2021-11-15 11:11:33\",\n" +
"\"providerEndAddress\":\"\",\n" +
"\"paidMoney\":268,\n" +
"\"weihuUserId\":\"0\",\n" +
"\"productTypeName\":\"航空运输\"\n" +
"}\n" +
"]\n" +
"}\n" +
"}";
Gson gson = new Gson();
Response response = gson.fromJson(jsonString, Response.class);
Data1 data = response.getData();//取出data
ListRecord records = data.getRecords();//取出records
for (int i = 0; i records.size(); i++) {
//循环判断records中的数据,ProductTypeName不为“公路零担”则移除
if (!"公路零担".equals(records.get(i).getProductTypeName())) {
records.remove(i);
i--;
}
}
data.setRecords(records);//覆盖原有的records
response.setData(data);//覆盖原有的data
System.out.println(gson.toJson(response, Response.class));//转成json字符串输出
}
@Data
private class Response {
private Data1 data;
}
@Data
private class Data1 {
private ListRecord records;
}
@Data
private class Record {
private String couponName;
private String payTime;
private String providerEndAddress;
private String paidMoney;
private String weihuUserId;
private String productTypeName;
}
}
运行结果:
Spring Boot 前端请求参数自动映射到枚举,后端响应JSON数据自动解析枚举
1. 表单请求方式
请求URL:
方法form()接收到请求参数为Type[code="1", desc="类型1"]枚举对象
响应数据:{"testId": 1,"testName": "test1","type": {"code": "1","desc": "类型1"}}
2.JSON请求方式
请求URL:
请求参数:{"type":"TYPE_1"}
方法json()接收到请求参数为Type[code="1", desc="类型1"]枚举对象
响应数据:{"testId": 1,"testName": "test1","type": {"code": "1","desc": "类型1"}}
注意:这种比较特殊,没有特殊配置,参数值需要是枚举名称,如果参数值是1,会根据枚举类的ordinal属性来关联,原因应该是解析json用的是jackson,用不到spring的Formatter和Converter之类的机制。
有解决方案的朋友欢迎留言~~ (❤ ω ❤)
java如何将接收到的数字自动转换为枚举
方式一:写判断
public enum ORDER {
FIRST, SECOND;
public static ORDER getEnumOrder(int order) {
switch (order) {
case 1:
return FIRST;
case 2:
return SECOND;
default:
return null;
}
}
}
在使用的地方
ORDER first = ORDER.getEnumOrder(1);
方式二:字符串拼接
public enum ORDER {
ORDER_1, ORDER_2;
}
在使用的地方
ORDER first = ORDER.valueOf("ORDER_" + 1);
方式三:枚举数组
public enum ORDER {
FIRST, SECOND;
}
在使用的地方
int order = 1;
ORDER[] orders = ORDER.values();
ORDER first = orders[order - 1];
java 枚举类怎么转换成json
fastjson转化如下: public class Userinfo { private String username; private String password; private Address address; //省略相应的get/set方法 } //json转化单个对象 Userinfo userinfo = JSON.parseObject(jsonString,
nodejs调用java代码 其中java写的方法要传入一个枚举类型的参数,nodejs有枚举类型吗?
跨语言的对象,是不能这样的传递。nodejs传一个 字符串(json格式,或者xml) 给java,
java端 把这个字符串 解析成 你所需要的枚举类型,然后再调用java方法。 如果nodejs的枚举对象 和 java对象的枚举对象可以通用,那为什么还需要 nodejs和java两种语言。
Java中哪个JSON库的解析速度是最快的
FastJson效率最高,是阿里巴巴开源 的Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;
javajson枚举的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中枚举、javajson枚举的信息别忘了在本站进行查找喔。