【发布时间】:2015-09-17 17:49:35
【问题描述】:
我正在实现一个实用方法来将 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 上,无法访问该库)
【问题讨论】:
-
如果您查询的字符串看起来像这样,您必须编写自己的 C# 逻辑来解析它们。 var postString = "product[description]=GreatStuff" + "&product[extra_info]=Extra" + "&product[ledger_account_id]=42" + "&product[sales_price]=11.5" + "&product[sales_price_includes_tax]=0" + "&product [tax_code_id]=33";