JSON转GET请求参数

这段代码实现了一个将JavaScript对象或数组转换为GET请求参数字符串的函数。它支持处理嵌套的对象和数组,适用于前端开发中构建URL查询字符串的场景。通过对输入的数据类型进行判断,递归地遍历并拼接成URL参数。
摘要由CSDN通过智能技术生成
function parseParam(t, e) {
      var n = "";
      if (
        "string" == typeof t ||
        "number" == typeof t ||
        "boolean" == typeof t ||
        null === t ||
        void 0 === t
      ) {
        n += "&" + e + "=" + t;
      } else if (t instanceof Array) {
        for (let i = 0; i < t.length; i++) {
          var r =
            null == e ? i : e + (t instanceof Array ? "[" + i + "]" : "." + i);
          n += "&" + parseParam(t[i], r);
        }
      } else if (t instanceof Object) {
        for (var i in t) {
          var o =
            null == e ? i : e + (t instanceof Array ? "[" + i + "]" : "." + i);
          n += "&" + parseParam(t[i], o);
        }
      }

      return n.substr(1);
    },

参考https://www.bejson.com/jsontools/json2get/ 网站源码
在这里插入图片描述
源码代码:

function parseParam(t, e) {
    var n = "";
    if ("string" == typeof t || "number" == typeof t || "boolean" == typeof t || null === t || void 0 === t)
        n += "&" + e + "=" + t;
    else if (t instanceof Array)
        $.each(t, function(i, o) {
            var r = null == e ? i : e + (t instanceof Array ? "[" + i + "]" : "." + i);
            n += "&" + parseParam(o, r)
        });
    else if (t instanceof Object)
        for (var i in t) {
            var o = null == e ? i : e + (t instanceof Array ? "[" + i + "]" : "." + i);
            n += "&" + parseParam(t[i], o)
        }
    return n.substr(1)
}
在HTTP请求中,JSON格式通常作为请求体(Request Body)的一部分发送。要获取JSON请求的参数,你可以按照以下步骤进行操作: 1. 首先,通过HttpServletRequest对象获取请求体的内容。可以使用`getInputStream()`方法获取输入流,或者使用`getReader()`方法获取字符流。 2. 接下来,将请求体的内容读取到一个字符串中。你可以使用流操作或字符串读取方法来完成这个步骤。例如,使用流操作可以使用BufferedReader逐行读取字符流并将其拼接到一个StringBuilder中。 3. 将获取到的请求体内容解析为JSON格式。你可以使用JSON解析库(如Jackson、Gson等)来将字符串解析为JSON对象或映射为Java对象。 4. 现在,你可以通过操作JSON对象来获取请求参数。根据JSON的结构,可以使用键值对的方式获取参数的值。 以下是一个简单的示例代码,演示如何从JSON请求中获取参数: ```java import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; // 假设请求体的JSON格式为 {"name": "John", "age": 25} // 获取请求体内容 String requestBody = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); // 解析JSON请求体 ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(requestBody); // 获取参数值 String name = jsonNode.get("name").asText(); int age = jsonNode.get("age").asInt(); // 打印参数值 System.out.println("Name: " + name); System.out.println("Age: " + age); ``` 需要注意的是,上述示例使用了Jackson库进行JSON解析,你也可以使用其他的JSON解析库根据需要进行相应的调整。 总结起来,要从JSON的HTTP请求中获取参数,你需要获取请求体的内容,解析为JSON对象,然后通过操作JSON对象获取参数的值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值