第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 spring 中將 JSON 數(shù)組字段恢復(fù)為字節(jié)數(shù)組

在 spring 中將 JSON 數(shù)組字段恢復(fù)為字節(jié)數(shù)組

胡子哥哥 2023-08-09 15:13:39
我是 spring 新手,在這里我發(fā)送一個(gè) http 請(qǐng)求,需要將消息傳遞到服務(wù)器。但消息應(yīng)該作為字節(jié)數(shù)組發(fā)送。我使用以下curl命令。這里傳遞的消息是“hello”。curl -i -H "Content-type: application/json" -X POST -d '{"message":[72,69,76,76,79]}' http://localhost:8080/json控制器應(yīng)該監(jiān)聽(tīng)請(qǐng)求并再次將消息字段恢復(fù)為 byte[]??刂破鞔a:@RequestMapping(value = "/json", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)@ResponseBodypublic ResponseEntity<Map<String, Object>> jsonReceiver(@RequestHeader Map<String, String> headers, @RequestBody Map<String, Object> request) {    String bytes = request.get("message").toString();    LOGGER.info("Message: {}", bytes);    Map<String, Object> response = new HashMap<>();    response.put("status-code", "1000");    response.put("success", "true");    HttpHeaders respHeaders = new HttpHeaders();    respHeaders.add("Pragma", "ack");    return new ResponseEntity<Map<String, Object>>(response, respHeaders, HttpStatus.ACCEPTED);}在這里我可以獲得字符串形式的輸出。但我想把它變成一個(gè)字節(jié)[]。有什么方法可以從控制器獲取字節(jié)數(shù)組,而不需要讀取字符串然后對(duì)其進(jìn)行操作。Message: [72,69,76,76,79]
查看完整描述

3 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

嘗試這個(gè):


String message  = "[72,69,76,76,79]";

String[] stringArray = message.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");

byte[] byteArray = new byte[stringArray.length];


for(int i = 0; i<stringArray.length; i++)

{

    byteArray[i] = (byte) Integer.parseInt(stringArray[i]);

}

首先,轉(zhuǎn)換為字符串?dāng)?shù)組。然后,您在該數(shù)組中進(jìn)行迭代,并將每個(gè)元素轉(zhuǎn)換為 int,然后轉(zhuǎn)換為 byte 并將其分配給字節(jié)數(shù)組。


查看完整回答
反對(duì) 回復(fù) 2023-08-09
?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

當(dāng)您獲取請(qǐng)求正文時(shí),Map<String, Object>獲取字節(jié)數(shù)組的唯一方法是解析“stringyfied”字節(jié)數(shù)組并構(gòu)建結(jié)果字節(jié)數(shù)組。


就像是:


String byteArrayAsStr = request.get("message").toString();


// First get only the "string-numeric" values (storing them into a String[]

String[] byteValues = byteArrayAsStr.substring(1, byteArrayAsStr.length() - 1).split(",");

byte[] messageBytes = new byte[byteValues.length];


// then we store each parsed byte value into our result byte[] (messageBytes)

for (int i=0, len=messageBytes.length; i<len; i++) {

   messageBytes[i] = Byte.parseByte(byteValues[i].trim()); // trim not necessary in your case, as you send your array without spaces after commas 

}

[...]

如果您找不到更好的方法來(lái)直接以所需類(lèi)型獲取請(qǐng)求正文(使用適當(dāng)?shù)?DTO),則可以采用這種方法。


查看完整回答
反對(duì) 回復(fù) 2023-08-09
?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

你可以byte[]這樣制作String

byte[] byteArray = bytes.getBytes();


查看完整回答
反對(duì) 回復(fù) 2023-08-09
  • 3 回答
  • 0 關(guān)注
  • 198 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)