whueuwe 2019-01-28 16:47 采纳率: 100%
浏览 1332
已结题

json字符串反序列化成实体类,新手求解

现在有json字符串
{
“header”:{
“state”:”success”,
“count”:”视频个数”
},
“body”:[“http://10.10.10.10/123.mp4”,”http://10.10.10.10/234.mp4”]
}

怎么建实体类,并且反序列化

  • 写回答

3条回答 默认 最新

  • sheng94458 2019-01-28 17:32
    关注

    这个不是很简单么?

    第一个实体:
    @Data
    public class ResponseDemo implements Serializable {

    private static final long serialVersionUID = -6864708554168505352L;
    
    private ResponseHeaderDemo header;
    
    private List<String> body;
    

    }

    第二个实体

    @Data
    public class ResponseHeaderDemo implements Serializable {

    private static final long serialVersionUID = -1838521376200675071L;
    private boolean state;
    
    private String count;
    
    
    public ResponseHeaderDemo() {
    }
    
    public ResponseHeaderDemo(boolean state, String count) {
        this.state = state;
        this.count = count;
    }
    

    }

    测试类:

    public class TestObjSerializeAndDeserialize {

    public static void main(String[] args) throws Exception {
        //序列化Person对象
        SerializeResponseDemo();
    
        //反序列Perons对象
        ResponseDemo responseDemo = DeserializePerson();
        System.out.println("解析出来的对象" + new ObjectMapper().writeValueAsString(responseDemo));
    }
    
    /**
     * MethodName: SerializePerson
     * Description: 序列化Person对象
     * @author xudp
     * @throws FileNotFoundException
     * @throws IOException
     */
    private static void SerializeResponseDemo() {
        ObjectOutputStream oo = null;
        try {
            ResponseDemo responseDemo = new ResponseDemo();
            responseDemo.setBody(Arrays.asList("http://10.10.10.10/123.mp4", "http://10.10.10.10/123.mp4"));
            responseDemo.setHeader(new ResponseHeaderDemo(false, "视频个数"));
            // ObjectOutputStream 对象输出流,将ResponseDemo对象存储到E盘的ResponseDemo.txt文件中,完成对Person对象的序列化操作
            oo = new ObjectOutputStream(new FileOutputStream(new File("E:/ResponseDemo.txt")));
            oo.writeObject(responseDemo);
            System.out.println("ResponseDemo对象序列化成功!");
    
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                oo.close();
            } catch (IOException e) {
                System.out.println("关闭对象失败!");
                e.printStackTrace();
            }
        }
    }
    
    /**
     * MethodName: DeserializePerson
     * Description: 反序列Perons对象
     * @author xudp
     * @return
     * @throws Exception
     * @throws IOException
     */
    private static ResponseDemo DeserializePerson() throws Exception, IOException {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
                new File("E:/ResponseDemo.txt")));
        ResponseDemo person = (ResponseDemo) ois.readObject();
        System.out.println("ResponseDemo对象反序列化成功!");
        return person;
    }
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题的应用
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办