json字符串与16进制字符串的转换工具类
public class BinaryConversionUtil {public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.put("cmd", "auth");jsonObject.put("deviceId", "123456");jsonObject.put("token", "1");jsonToHexString(jsonObject);String hexString = "7B 22 63 6F 64 65 22 3A 31 2C 22 63 6D 64 22 3A 22 65 72 72 6F 72 22 7D";hexStringToString(hexString);}public static void jsonToHexString(JSONObject jsonObject){byte[] byteArray = jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8);System.out.println("字节数组长度:" + Integer.toHexString(byteArray.length));for (byte b : byteArray) {String hexString = String.format("%02x", b & 0xFF);System.out.print(hexString + " ");}System.out.println();}public static void hexStringToString(String hexString) {byte[] byteArray = hexStringToByteArray(hexString.replace(" ", ""));String asciiString = new String(byteArray, StandardCharsets.US_ASCII);System.out.println(asciiString);}private static byte[] hexStringToByteArray(String s) {int len = s.length();byte[] data = new byte[len / 2];for (int i = 0; i < len; i += 2) {data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)+ Character.digit(s.charAt(i + 1), 16));}return data;}
}
将两个字节合并为int类型
private static int mergeByte2Hex(byte high, byte low) {return (high << 8) | (low & 0xFF);
}