如何从包含c#中的数组的Jquery解析Json

时间:2012-04-05 07:00:17

标签: c# jquery json

如何从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的对象,因为这些参数是动态的。

1 个答案:

答案 0 :(得分:0)

您可以使用dynamic

 dynamic lst = new JavaScriptSerializer().Deserialize<dynamic>
               (@"{ ""a"": [""1"",""2""], ""b"" : 4}");

参考System.Web.Extensions

enter image description here

enter image description here

修改

看完后,你没有把JSON发送到.net !!!

var myObject = { "a": ["1,","2&"], "b" : 4 };

console.log(JSON.stringify(myObject));

===&GT; '{"a":["1,","2&"],"b":4}'  你应该发送STRING值而不是你所做的OBJECT!

现在你有:

enter image description here

更改

  data: { "a": ["1,","2&"], "b" : 4 },

to

  data:{"myValue" : JSON.stringify({ "a": ["1,","2&"], "b" : 4 })},

并在c#中读取:myValue