日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文介紹了如何序列化通過(guò)Java RSocket發(fā)送的POJO?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問題描述

我正在嘗試通過(guò)RSocket請(qǐng)求流發(fā)送POJO:

import java.io.Serializable;

class GreetingRequest implements Serializable {
    private String name;

    public GreetingRequest() {}

    public GreetingRequest(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

如果我要發(fā)送字符串,我可以這樣做:

ByteBuf data = ByteBufAllocator.DEFAULT.buffer().writeBytes("Hello".getBytes());

socket.requestStream(DefaultPayload.create(data, metadata))
        .map(Payload::getDataUtf8)
        .toIterable()
        .forEach(System.out::println);

但是我如何將我的POJO序列化?

這是我嘗試使用不起作用的implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'

GreetingRequest pojo = new GreetingRequest("Davide");
ByteBuf data = SerializationUtils.serialize(pojo);

socket.requestStream(DefaultPayload.create(data, metadata))
        .map(Payload::getDataUtf8)
        .toIterable()
        .forEach(System.out::println);

推薦答案

我建議您使用GSON轉(zhuǎn)換器。它可以幫助您將Java類轉(zhuǎn)換為JSON字符串。然后您可以像處理簡(jiǎn)單文本一樣使用字符串

您可以導(dǎo)入依賴項(xiàng):

dependencies {
  implementation 'com.google.code.gson:gson:2.8.7'
}

然后,可以使用jsonschema2pojo將JSON:

{ "name": "Test" }

添加到類似This

的類

    package com.example;
    
    import javax.annotation.Generated;
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class GreetingRequest {
    
    @SerializedName("name")
    @Expose
    private String name;
    
    public String getName() {
    return name;
    }
    
    public void setName(String name) {
    this.name = name;
    }
    
    }

完成所有操作后,您可以在Java中執(zhí)行以下操作:

    Gson converter = new Gson();
    GreetingsRequest request = new GreetingRequest();
    request.setName("Test");
    String greetingsJSON = converter.toJson(request);

然后您仍然可以按如下方式發(fā)送JSON字符串:

ByteBuf data = ByteBufAllocator.DEFAULT.buffer().writeBytes(greetingsJSON.getBytes());

socket.requestStream(DefaultPayload.create(data, metadata))
        .map(Payload::getDataUtf8)
        .toIterable()
        .forEach(System.out::println);

數(shù)據(jù)轉(zhuǎn)換

JSON對(duì)象-Java類
數(shù)組列表

幫助鏈接

這是您需要在Java中包含(包含教程)的庫(kù):GSON Converter Git

這是一個(gè)JSON到Class Online轉(zhuǎn)換器:Jsonschema2pojo generator

這篇關(guān)于如何序列化通過(guò)Java RSocket發(fā)送的POJO?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,

分享到:
標(biāo)簽:Java POJO RSocket 發(fā)送 序列化
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定