如何从c#中的json获取数组数据?
这是ajax代码
$.ajax({
type: "GET",
url: "/Weather/GetWeather",
data: { "a": ["1,","2&"], "b" : 4 },
success: onScc,
error: onErr,
dataType: "json"
});
上面的ajax将在Asp.net MVC中调用名为GetWeather的方法。
public string GetWeather()
{
//Request.QueryString.ToString() ---> a%5b%5d=1%2c&a%5b%5d=2%26&b=4
string a = HttpUtility.UrlDecode(Request.QueryString.ToString());
// string a ---> a=1,&a=2&&b=4
.....
}
我从.net获得的是-----> a[]=1,&a[]=2&&b=4
我想得到的就像----> string[]a = ["1", "2&"]
和int b = 4
。顺便说一句,我不想定义包含a和b的对象,因为这些参数是动态的。
答案 0 :(得分:0)
您可以使用dynamic
dynamic lst = new JavaScriptSerializer().Deserialize<dynamic>
(@"{ ""a"": [""1"",""2""], ""b"" : 4}");
参考System.Web.Extensions
var myObject = { "a": ["1,","2&"], "b" : 4 };
console.log(JSON.stringify(myObject));
===&GT; '{"a":["1,","2&"],"b":4}'
你应该发送STRING值而不是你所做的OBJECT!
现在你有:
更改:
data: { "a": ["1,","2&"], "b" : 4 },
to
data:{"myValue" : JSON.stringify({ "a": ["1,","2&"], "b" : 4 })},
并在c#中读取:myValue