JsonSerializer 对象转json数组

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了JsonSerializer 对象转json数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<resultMap id="AnaLOGValMap" tyPE="com.cetcht.COMmon.vo.echarts.TimeSeries">
    <result column="name" jdbcType="VArchAR" PRoperty="name" />
    <collection property="values" ofType="com.cetcht.common.vo.echarts.TimeData">
        <result column="val" jdbcType="DECIMAL" property="data" />
        <result column="created_date" jdbcType="TIMESTAMP" property="time" />
    </collection>
  </resultMap>

&nbsp;collection中的两个字段我想放在 Object[] 中,但是不知道怎么配置,只好暂时先用对象 timedata接收,再做二次处理

处理后的数据如下:

JsonSerializer 对象转json数组

 处理方案有两种,一种是前端处理:

async getAnalogData () {
      let {data} = await AnalogVal.timeLineData();
      this.analogHistoryData = data.map(function (ITem) {
        return {name: item.name, values: item.values.map(function (item) {
          return [item.time, item.data];
        })};
      });
      console.log(this.analogHistoryData)
      this.analogFlag = true
    }

 

第二种方案是controller返回的时候自定义对象转json的格式:

package com.cetcht.common.json;

import java.io.IOException;

import com.cetcht.common.vo.echarts.TimeData;
import com.fasterXMl.jackson.core.JsonGenerator;
import com.fasterxML.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

public class TimeDataSerializer extends JsonSerializer<TimeData> {

    public TimeDataSerializer() {
        
    }

    public void serialize(TimeData timeData, JsonGenerator jgen, SerializerProvider provider) throws IOException {
        jgen.writestartArray();
        jgen.writeNumber(timeData.getTime());
        jgen.writeNumber(timeData.getData());
        jgen.writeEndArray();
    }
}

 

package com.cetcht.common.vo.echarts;

import java.math.BigDecimal;
import java.util.Date;

import com.cetcht.common.json.TimeDataSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

@JsonSerialize(using = TimeDataSerializer.class)
public class TimeData {
    
    /**
     * 值
     */
    private BigDecimal data;

    /**
     * 记录入库的时间
     */
    private Date time;

    public BigDecimal getData() {
        return data;
    }

    public void setData(BigDecimal data) {
        this.data = data;
    }

    public long getTime() {
        return time.getTime();
    }

    public void setTime(Date time) {
        this.time = time;
    }

}

 

脚本宝典总结

以上是脚本宝典为你收集整理的JsonSerializer 对象转json数组全部内容,希望文章能够帮你解决JsonSerializer 对象转json数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。