"{"config": [{"code": "answerCount", "default": 1}]}" 用java从该字符串中获取default内容
时间: 2023-09-03 16:07:01 浏览: 109
获取default内容的Java代码如下:
```
String jsonStr = "{"config": [{"code": "answerCount", "default": 1}]}";
JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray configArr = jsonObj.getJSONArray("config");
JSONObject configObj = configArr.getJSONObject(0);
int defaultVal = configObj.getInt("default");
System.out.println(defaultVal);
```
输出结果为:
```
1
```
相关问题
var net = require("net"); var config = require("./config"); var client = net.createConnection({ port:config.port, host:config.host, }); var username; client.on("connect",function () { console.log("请输入用户名:"); process.stdin.on("data",function (data) { data = data.toString().trim(); if (!username){ var send = { mstype:"signup", username:data }; client.write(JSON.stringify(send)); return; } var regex = /(.{1,18}):(.+)/; var matches = regex.exec(data); if(matches){ var from = username; var to = matches[1]; var message = matches[2]; var send = { mstype:"p2p", from:username, to:to, message:message }; client.write(JSON.stringify(send)); }else{ var send = { mstype:"broadcast", from:username, message:data, }; client.write(JSON.stringify(send)); }; }); }); client.on("data",function (data) { data=JSON.parse(data); switch(data.mstype){ case "signup": var code=data.code; switch(code){ case 1000: username=data.username; console.log(data.message); break; case 1001: console.log(data.message); break; default: break; } break; case "broadcast": console.log(data.message); break; case "p2p": var code=data.code; switch(code){ case 2000: console.log(data.message); break; case 2001: console.log(data.message); break; default: 这段代码中,正则表达式匹配的东西是什么,正则表达式中的()作用是什么,matches[0]、matches[1]、matches[2]内容分别是什么,详细回答以上问题
这段代码中的正则表达式 `/(.{1,18}):(.+)/` 是用来匹配用户输入的消息内容的。其中,`.` 表示匹配任意单个字符,`{1,18}` 表示匹配长度为 1 到 18 的任意字符,`:` 表示匹配冒号,`(.+)` 表示匹配长度为 1 到无限长的任意字符,`()` 的作用是分组,将匹配到的内容分成多个组。
当用户输入的消息内容符合正则表达式时,`matches` 变量会保存匹配到的内容,其中 `matches[0]` 表示整个匹配到的字符串,`matches[1]` 表示第一个分组匹配到的内容(即收件人的用户名),`matches[2]` 表示第二个分组匹配到的内容(即消息内容)。如果用户输入的消息内容不符合正则表达式,则 `matches` 变量为 null。
在代码中,如果 `matches` 变量存在,则将消息发送给指定的收件人;否则,则将消息广播给所有在线用户。
修改以下程序,使其接收指令后发送一个hello,world字符串。#include "main.h"#include "usart.h"#include "gpio.h"#include "stdio.h"#include "string.h"uint8_t aRxBuffer;void SystemClock_Config(void);int fputc(int ch, FILE *f){ uint8_t temp[1] = {ch}; HAL_UART_Transmit(&huart1, temp, 1, 0xffff);return ch;}int fgetc(FILE * f){ uint8_t ch = 0; HAL_UART_Receive(&huart1,&ch, 1, 0xffff); return ch;}int main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1); user_main_printf(""); /* USER CODE END 2 */ while (1) { }}void SystemClock_Config(void){ RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL2; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { Error_Handler(); }}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ char *pCmd = NULL; uint8_t len; switch(aRxBuffer){ case '1': pCmd = "command 1\r\n"; len = strlen(pCmd); break; case '2': pCmd = "command 2\r\n"; len = strlen(pCmd); break; case '3': pCmd = "command 3\r\n"; len = strlen(pCmd); break; case '4': pCmd = "command 4\r\n"; len = strlen(pCmd); break; default: pCmd = "command cmd\r\n"; len = strlen(pCmd); break; } HAL_UART_Transmit(&huart1, (uint8_t *)pCmd, len,0xFFFF); HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1); }void Error_Handler(void){}#ifdef USE_FULL_ASSERTvoid assert_failed(uint8_t *file, uint32_t line){ }#endif
请修改程序如下:
```
#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "stdio.h"
#include "string.h"
uint8_t aRxBuffer;
void SystemClock_Config(void);
int fputc(int ch, FILE *f) {
uint8_t temp[1] = {ch};
HAL_UART_Transmit(&huart1, temp, 1, 0xffff);
return ch;
}
int fgetc(FILE * f) {
uint8_t ch = 0;
HAL_UART_Receive(&huart1,&ch, 1, 0xffff);
return ch;
}
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);
while (1) {
if (aRxBuffer != 0) {
HAL_UART_Transmit(&huart1, "hello, world\r\n", 14, 0xFFFF);
aRxBuffer = 0;
HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);
}
}
}
void SystemClock_Config(void) {
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL2;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
Error_Handler();
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|
RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) {
Error_Handler();
}
}
void Error_Handler(void) {}
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t *file, uint32_t line) {}
#endif
```
修改后的程序会在收到任何字符后发送 "hello, world" 字符串,然后再继续等待下一个字符。
阅读全文