jsonresult工具类_json转换工具

jsonresult工具类_json转换工具项目中经常会有String转Object以及Object转Json字符串的等其他的转化需求,合理的使用Json工具类会很方便转换

jsonresult工具类_json转换工具"

 项目中经常会有String转Object以及Object转Json字符串的等其他的转化需求,合理的使用Json工具类会很方便转换。


JsonUtil —— toList(前端与后端之间传递)

场景: 

  • form表单数据结构如下
form: {
    params:{sectionData:''},
    id:'',
    peopleName: '',
}
  • 转化:JSON.stringify(this.sections)
            submitEvent() {
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        this.form.params.sectionData = JSON.stringify(this.sections);
                        this.http.postJson('/admin/peopleInfo', this.form).then(resp => {
                            this.requested = false;
                            if (resp.status != 200) {
                                this.$message.error("操作失败");
                            } else {
                                this.$message.success("操作成功");
                                setTimeout(() => {
                                    this.$router.go(-1);
                                }, 500);
                            }
                        });
                    } else {
                        return false;
                    }
                });
                return false;
            },
  • 后台接收:JsonUtil.toList(dataMap.get(“sectionData”).toString(), People.class)
        Map dataMap = returnResult.getParams();
        if (dataMap.containsKey("sectionData") && !ObjectUtils.isEmpty(dataMap.get("sectionData"))) {
            //保存people相关信息
            List<People> peopleList = JsonUtil.toList(dataMap.get("sectionData").toString(), People.class);
            for (People bean: peopleList) {
                bean.setPeopleName(result.getPeopleName());
                bean.setLinkId(result.getLinkId());
                peopleService.save(bean);
            }
        }

JsonUtil.java源码 —— toList

public static <T> List<T> toList(String json, Class<T> valueType) {
        Validate.notBlank(json);
        Validate.notNull(valueType);
        JavaType javaType = getObjMapper().getTypeFactory().constructParametricType(ArrayList.class, new Class[]{valueType});

        try {
            return (List)getObjMapper().readValue(json, javaType);
        } catch (Exception var4) {
            throw new RuntimeException(var4);
        }
    }

 

JsonUtil —— toJson、toObject(后端之间传递)

 场景: ActiveMQ消息传递

public class TestInfo implements Serializable {
    /** 消息标识 */
    private String msgId; 
    /** 消息内容 */
    private Map data;
}

传递:将需要传递的实体类,转换为JsonString形式传递

TestInfo testInfo = new TestInfo();
testInfo.setMsgId(UUID.randomUUID().toString().replaceAll("-", ""));

Map map = new HashMap();

List<MessageInfo> lists = new ArrayList<>();
// 装载 lists...

// toJson需要接收的是一个Serializable的值,下面有源码
map.put("messageInfo", JsonUtil.toJson((Serializable) lists));
testInfo.setData(map);

//发送AMQ消息给平台
producer.sendMessage(null, JsonUtil.toJson(testInfo ));

接收:转化为一个TestInfoDto接收

    /**
     * 使用JmsListener配置消费者监听的队列,其中text是接收到的消息
     */
    @JmsListener(destination = "...")
    public void receiveQueue(String text) {
        logger.info("Consumer收到的报文为:" + text);
        try {
            TestInfoDto testInfoDto = JsonUtil.toObject(message, TestInfoDto.class);

        } catch (Exception e) {
            e.printStackTrace();
        }

源码:toJson、toObject

    public static String toJson(Serializable value) {
        try {
            return getObjMapper().writeValueAsString(value);
        } catch (JsonProcessingException var2) {
            throw new RuntimeException(var2);
        }
    }

    public static <T> T toObject(String json, Class<T> valueType) {
        Validate.notBlank(json);
        Validate.notNull(valueType);

        try {
            return getObjMapper().readValue(json, valueType);
        } catch (Exception var3) {
            throw new RuntimeException(var3);
        }
    }

 

 

 

今天的文章jsonresult工具类_json转换工具分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/74202.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注