123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package com.sooka.sponest.event.utils;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import java.io.UnsupportedEncodingException;
- import java.net.URLDecoder;
- public class URLToJSONConverter {
- /**
- * 将 URL 编码的字符串转换为格式化的 JSON 字符串
- * @param encodedData URL 编码的字符串
- * @return 格式化的 JSON 字符串
- */
- public static String convertURLToJSON(String encodedData) {
- try {
- // 解码 URL 编码的字符串
- String decodedData = URLDecoder.decode(encodedData, "UTF-8");
- // 去掉等号(如果存在)
- if (decodedData.endsWith("=")) {
- decodedData = decodedData.substring(0, decodedData.length() - 1);
- }
- // 将字符串解析为 JSON 对象
- JSONObject jsonObject = JSON.parseObject(decodedData);
- // 格式化 JSON 输出
- return jsonObject.toJSONString();
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- return "Error: UnsupportedEncodingException";
- } catch (Exception e) {
- e.printStackTrace();
- return "Error: Invalid input format";
- }
- }
- public static void main(String[] args) {
- // 示例 URL 编码的 JSON 数据
- 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";
- // 调用方法并打印结果
- String result = convertURLToJSON(encodedData);
- System.out.println(result);
- }
- }
|