You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET Core中如何将querystring转换为JSON字符串?

查询字符串(Query String)转JSON键值对实现方案

通用处理逻辑:

  • 先清洗输入,去掉可能开头带的?前缀(比如直接从浏览器地址栏获取的location.search默认带?)
  • 用&作为分隔符拆分原始字符串,得到每个独立的键值对单元
  • 对每个键值对用=拆分出键和值,同时做URL解码,处理特殊字符转义的情况
  • 把所有键值对存入对象/字典,最后序列化为JSON格式字符串

JavaScript 示例代码

function queryStringToJson(queryStr) {
  // 去除开头的?(如果存在)
  const cleanedStr = queryStr.startsWith('?') ? queryStr.slice(1) : queryStr;
  const keyValuePairs = cleanedStr.split('&');
  const resultObj = {};

  keyValuePairs.forEach(pair => {
    const [key, value] = pair.split('=');
    // 解码URL编码字符,空值兜底
    resultObj[decodeURIComponent(key)] = decodeURIComponent(value || '');
  });

  return JSON.stringify(resultObj);
}

// 测试用例
const inputQuery = "ID=123&FNAME=test&LNAME=xyz";
console.log(queryStringToJson(inputQuery));
// 输出结果:{"ID":"123","FNAME":"test","LNAME":"xyz"}

Python 示例代码

from urllib.parse import parse_qs
import json

def query_string_to_json(query_str: str) -> str:
    # 解析查询字符串,保留空值
    parsed_data = parse_qs(query_str, keep_blank_values=True)
    # parse_qs默认返回列表,单值场景直接取第一个元素
    result_dict = {key: val[0] for key, val in parsed_data.items()}
    return json.dumps(result_dict)

# 测试用例
input_query = "ID=123&FNAME=test&LNAME=xyz"
print(query_string_to_json(input_query))
# 输出结果:{"ID": "123", "FNAME": "test", "LNAME": "xyz"}

补充说明:如果你的场景里存在同一个键多次出现的情况,比如key1=val1&key1=val2,可以调整代码把对应的值存储为数组,避免丢失数据。

内容的提问来源于stack exchange,提问作者Jaya rama vardhan reddy guvval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:45:03