URLToJSONConverter.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.sooka.sponest.event.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import java.io.UnsupportedEncodingException;
  5. import java.net.URLDecoder;
  6. public class URLToJSONConverter {
  7. /**
  8. * 将 URL 编码的字符串转换为格式化的 JSON 字符串
  9. * @param encodedData URL 编码的字符串
  10. * @return 格式化的 JSON 字符串
  11. */
  12. public static String convertURLToJSON(String encodedData) {
  13. try {
  14. // 解码 URL 编码的字符串
  15. String decodedData = URLDecoder.decode(encodedData, "UTF-8");
  16. // 去掉等号(如果存在)
  17. if (decodedData.endsWith("=")) {
  18. decodedData = decodedData.substring(0, decodedData.length() - 1);
  19. }
  20. // 将字符串解析为 JSON 对象
  21. JSONObject jsonObject = JSON.parseObject(decodedData);
  22. // 格式化 JSON 输出
  23. return jsonObject.toJSONString();
  24. } catch (UnsupportedEncodingException e) {
  25. e.printStackTrace();
  26. return "Error: UnsupportedEncodingException";
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. return "Error: Invalid input format";
  30. }
  31. }
  32. public static void main(String[] args) {
  33. // 示例 URL 编码的 JSON 数据
  34. String encodedData = "%7B%22data%22%3A%5B%7B%22alarmType%22%3A%22Sleep%22%2C%22altitude%22%3A0.0%2C%22createTime%22%3A1742354657000%2C%22latitude%22%3A38.185382%2C%22longitude%22%3A107.487296322%2C%22photoId%22%3A518%2C%22photoPath%22%3A%22https%3A%2F%2F47.93.50.30%3A443%2Fmedia%2Fdji-photos%2Fwayline%2F1742354657053.JPG%22%2C%22timeStamp%22%3A0%7D%5D%7D";
  35. // 调用方法并打印结果
  36. String result = convertURLToJSON(encodedData);
  37. System.out.println(result);
  38. }
  39. }