「javajson枚举」java中枚举

博主:adminadmin 2023-01-06 00:39:10 713

本篇文章给大家谈谈javajson枚举,以及java中枚举对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用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枚举的信息别忘了在本站进行查找喔。