2

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

4

1 回答 1

0

您可以使用dynamic

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

参考 System.Web.Extensions

在此处输入图像描述

在此处输入图像描述

编辑

看了之后,你没有将 JSON 发送到 .net !!!

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

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

===>'{"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

于 2012-04-05T07:35:33.760 回答