gpt4 book ai didi

c# - Json.Net 将复杂查询字符串转换为 JsonString

转载 作者:太空宇宙 更新时间:2023-11-03 15:38:03 27 4
gpt4 key购买 nike

我正在实现一个实用方法来将 queryString 转换为 JsonString。

我的代码如下:

        public static string GetJsonStringFromQueryString(string queryString)
{
var nvs = HttpUtility.ParseQueryString(queryString);
var dict = nvs.AllKeys.ToDictionary(k => k, k => nvs[k]);
return JsonConvert.SerializeObject(dict, new KeyValuePairConverter());
}

当我用下面的代码测试时:

 var postString = "product[description]=GreatStuff" +
"&product[extra_info]=Extra";
string json = JsonHelper<Product>.GetJsonStringFromQueryString(postString);

我得到了

{
"product[description]":"GreatStuff",
"product[extra_info]":"Extra",

...

}

我想得到的是

{
"product":{
"description": "GreatStuff",
"extra_info" : "Extra",
...
}
}

如何在不使用 System.Web.Script Assembly 的情况下实现这一目标? (我在 Xamarin 上,无法访问该库)

最佳答案

您需要删除 product[key](产品属性名称或 key 除外...)部分以获得您想要的...

也就是说,您应该在以这种方式解析查询字符串之前对其进行预处理:

string queryString = "product[description]=GreatStuff" +
"&product[extra_info]=Extra";
var queryStringCollection = HttpUtility.ParseQueryString(queryString);
var cleanQueryStringDictionary = queryStringCollection.AllKeys
.ToDictionary
(
key => key.Replace("product[", string.Empty).Replace("]", string.Empty),
key => queryStringCollection[key]
);

var holder = new { product = cleanQueryStringDictionary };
string jsonText = JsonConvert.SerializeObject(holder);

关于c# - Json.Net 将复杂查询字符串转换为 JsonString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31146621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com