use of com.alibaba.fastjson2.JSON in project SpringBoot-Hello by ruiyeclub.
the class FastJson2ApplicationTests method testParseArray.
/**
* JSON字符串转换成数组
*/
@Test
public void testParseArray() {
String str = "[\"id\", 123]";
JSONArray objects = JSON.parseArray(str);
String idStr = objects.getString(0);
System.out.println(idStr);
}
use of com.alibaba.fastjson2.JSON in project SpringBoot-Hello by ruiyeclub.
the class FastJson2ApplicationTests method testParseObject.
/**
* JSON字符串转换成对象
*/
@Test
public void testParseObject() {
String str = "{\"id\":123}";
JSONObject jsonObject = JSON.parseObject(str);
Integer id = jsonObject.getInteger("id");
System.out.println(id);
}
use of com.alibaba.fastjson2.JSON in project druid by alibaba.
the class MySqlParameterizedOutputVisitorTest_44 method test_for_parameterize.
public void test_for_parameterize() throws Exception {
final DbType dbType = JdbcConstants.MYSQL;
String sql = "select 1 from a where c1 in (date_format(date_add(curdate(), INTERVAL -7 DAY), '%Y%m%d'))";
SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType);
List<SQLStatement> stmtList = parser.parseStatementList();
SQLStatement statement = stmtList.get(0);
StringBuilder out = new StringBuilder();
SQLASTOutputVisitor visitor = SQLUtils.createOutputVisitor(out, JdbcConstants.MYSQL);
List<Object> parameters = new ArrayList<Object>();
visitor.setParameterized(true);
visitor.setParameterizedMergeInList(true);
visitor.setParameters(parameters);
/*visitor.setPrettyFormat(false);*/
statement.accept(visitor);
/* JSONArray array = new JSONArray();
for(String table : visitor.getTables()){
array.add(table.replaceAll("`",""));
}*/
String psql = out.toString();
System.out.println(psql);
assertEquals("SELECT ?\n" + "FROM a\n" + "WHERE c1 IN (date_format(date_add(curdate(), INTERVAL ? DAY), '%Y%m%d'))", psql);
String params_json = JSON.toJSONString(parameters, JSONWriter.Feature.WriteClassName);
System.out.println(params_json);
JSONArray jsonArray = JSON.parseArray(params_json);
String json = JSON.toJSONString(jsonArray, JSONWriter.Feature.WriteClassName);
assertEquals("[1,-7]", json);
String rsql = SQLUtils.toSQLString(SQLUtils.parseStatements(psql, dbType), dbType, jsonArray);
assertEquals("SELECT 1\n" + "FROM a\n" + "WHERE c1 IN (date_format(date_add(curdate(), INTERVAL -7 DAY), '%Y%m%d'))", rsql);
}
use of com.alibaba.fastjson2.JSON in project druid by alibaba.
the class Oracle_param_1 method test_for_parameterize.
public void test_for_parameterize() throws Exception {
final DbType dbType = JdbcConstants.MYSQL;
String sql = "SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual;";
SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(sql, dbType);
List<SQLStatement> stmtList = parser.parseStatementList();
SQLStatement statement = stmtList.get(0);
StringBuilder out = new StringBuilder();
SQLASTOutputVisitor visitor = SQLUtils.createOutputVisitor(out, JdbcConstants.ORACLE);
List<Object> parameters = new ArrayList<Object>();
visitor.setParameterized(true);
visitor.setParameterizedMergeInList(true);
visitor.setParameters(parameters);
/*visitor.setPrettyFormat(false);*/
statement.accept(visitor);
/* JSONArray array = new JSONArray();
for(String table : visitor.getTables()){
array.add(table.replaceAll("`",""));
}*/
String psql = out.toString();
assertEquals("SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')\n" + "FROM dual;", psql);
String params_json = JSON.toJSONString(parameters, JSONWriter.Feature.WriteClassName);
System.out.println(params_json);
JSONArray jsonArray = JSON.parseArray(params_json);
String json = JSON.toJSONString(jsonArray, JSONWriter.Feature.WriteClassName);
assertEquals("[]", json);
String rsql = SQLUtils.toSQLString(SQLUtils.parseStatements(psql, dbType), dbType, jsonArray);
assertEquals("SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')\n" + "FROM dual;", rsql);
}
use of com.alibaba.fastjson2.JSON in project witsTalk by XinSin-top.
the class ChatFrameHandler method channelRead0.
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame) {
/*
此方法会在收到消息时调用
*/
//
session = ChatStart.factory.openSession();
chatDao = session.getMapper(ChatDao.class);
// 获取传输通道
Channel channel = channelHandlerContext.channel();
// 获取通道ID
ChannelId id = channel.id();
// 获取消息文本内容
String data = textWebSocketFrame.text();
// 日志
log.debug("receive message {} ip = {} id = {}", data, channel.remoteAddress().toString(), id.asShortText());
// 将消息转换为json
JSONObject json;
try {
json = JSON.parseObject(data);
} catch (JSONException e) {
// 打印错误
e.printStackTrace();
// 将syntax error发回至客户端
sendMessage(id, "syntax error");
return;
}
// 获取进行的操作
String operating = json.getString("op");
// 获取操作的参数
JSONObject args = json.getJSONObject("args");
String loginCommand = "login";
String sendCommand = "send";
String getMessageCommand = "get";
String getMessageCountCommand = "count";
String recallMessageCommand = "recall";
// 登录操作
if (Objects.equals(operating, loginCommand)) {
Boolean r = JwtTokenUtils.isRight(args.getString("token"));
log.debug("logon,r = {} ip = {} id = {}", r, channel.remoteAddress().toString(), id.asShortText());
loginTable.put(id, r);
sendMessage(id, r.toString());
} else if (loginTable.get(id)) {
// 如果操作为send
if (Objects.equals(operating, sendCommand)) {
// 获取发送者
String sender = args.getString("sender");
// 获取发送内容
String content = args.getString("content");
// 获取发送的类型
String type = args.getString("type");
// 日志
log.info("sendMessage,sender = {} content = {} type = {}", sender, content, type);
// 定义消息对象
Message message = new Message(content, sender, type);
// Dao层发送消息
chatDao.sendMessage(message);
session.commit();
// 获取用户头像
String b64 = chatDao.getUserHeadPortrait(sender);
message.setBase64(b64);
// 广播此消息
String rawJson = JSON.toJSONString(message);
sendToAll(rawJson);
} else // 如果操作为getMessage
if (Objects.equals(operating, getMessageCommand)) {
// 获取id最小值
Integer min = args.getInteger("min");
// 获取id最大值
Integer max = args.getInteger("max");
// 日志
log.info("getMessage min = {} max = {} ip = {} id = {}", min, max, channel.remoteAddress(), id.asShortText());
// 从数据库获取消息
ArrayList<Message> messages = chatDao.getMessage(min, max);
// todo 更改为双标查询获取头像
// 将这些消息转换为json并返回给客户端
sendMessage(id, JSON.toJSONString(messages));
} else // 如果操作为getMessageCount
if (Objects.equals(operating, getMessageCountCommand)) {
// 日志
log.info("getMessageCount");
// 从数据库获取消息数量
Integer count = chatDao.getCount().get(0);
sendMessage(id, count);
} else if (Objects.equals(operating, recallMessageCommand)) {
int i = args.getInteger("id");
Message message = new Message(i);
log.info("Recall Message message={}", message);
chatDao.recall(message);
session.commit();
HashMap<String, String> resp = new HashMap<>(10);
resp.put("op", "recall");
resp.put("id", String.valueOf(i));
sendToAll(JSON.toJSONString(resp));
}
} else {
sendMessage(id, "You are not login!");
}
session.close();
}
Aggregations