Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从c中包含数组的Jquery解析Json_C#_Jquery_Json - Fatal编程技术网

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

C# 如何从c中包含数组的Jquery解析Json,c#,jquery,json,C#,Jquery,Json,如何在c中从json获取数组数据 下面是ajax代码 $.ajax({ type: "GET", url: "/Weather/GetWeather", data: { "a": ["1,","2&"], "b" : 4 }, success: onScc, error: onErr, dataType: "json"

如何在c中从json获取数组数据

下面是ajax代码

        $.ajax({
            type: "GET",
            url: "/Weather/GetWeather",
            data: { "a": ["1,","2&"], "b" : 4 },
            success: onScc,
            error: onErr,
            dataType: "json"
        });
上面的ajax将调用Asp.NETMVC中名为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

我想要得到的是-->字符串[]a=[1,2&]和int b=4。顺便说一句,我不想定义包含a和b的对象,因为这些参数是动态的。

您可以使用动态的

=>“{a:[1,2&],b:4}” 您应该发送字符串值,而不是您所发送的对象

现在您将拥有:

更改:

在c中读取:myValue

可以使用动态

=>“{a:[1,2&],b:4}” 您应该发送字符串值,而不是您所发送的对象

现在您将拥有:

更改:


在c read:myValue

中,您在.NET中的数据结构是什么?您是否使用内置的json序列化?1。我没有定义数据结构,因为json数据结构可能会动态更改。2.我没有使用内置的json序列化。我看了一下json.net,它似乎不适合我的目的。序列化数据结构很简单,并且不需要外部库,唯一的问题是需要为天气数据定义一个可序列化的类,然后执行以下操作:JavaScriptSerializer serializer=new JavaScriptSerializer;string json=serializer.SerializeweatherData;。您可以使用.NET3.5中的JavaScriptSerializer,它位于System.Web.Extensions程序集中。实际上,我已经完成了您在项目中说过的内容。但正如我所提到的,现在数据结构是动态的,因此我无法定义类。您在.NET中的数据结构是什么?您是否使用内置的json序列化?1。我没有定义数据结构,因为json数据结构可能会动态更改。2.我没有使用内置的json序列化。我看了一下json.net,它似乎不适合我的目的。序列化数据结构很简单,并且不需要外部库,唯一的问题是需要为天气数据定义一个可序列化的类,然后执行以下操作:JavaScriptSerializer serializer=new JavaScriptSerializer;string json=serializer.SerializeweatherData;。您可以使用.NET3.5中的JavaScriptSerializer,它位于System.Web.Extensions程序集中。实际上,我已经完成了您在项目中说过的内容。但正如我所提到的,现在数据结构是动态的,所以我无法定义类。@W关于如何在cThanks中**从json获取数组**数据以供回答,在我发布这个问题之前,我已经尝试过这种方法,问题是我从.net Request.QueryString获得的内容包括特殊字符[],这是由Jquery生成的,请参考我在问题中提到的例子。a[]=1,&a[]=2&&b=4。这不能简单地反序列化.string queryStr=HttpUtility.urldecodequest.QueryString.ToString;动态d=新的JavaScriptSerializer.DeserializequeryStr;get error Invalid JSON原语:a。有点困惑,我将更新线程中的完整代码。我在这里输入的JSON数据是我从Jquery.Ajax中获得的。这很好,但您不应该发送对象,而应该发送表示该对象的字符串。请继续问我。@w关于如何在cThanks中**从json获取数组**数据以供回答,在我发布此问题之前,我已经尝试过这种方法,问题是我从.net Request.QueryString获得的内容包含特殊字符[]这是由Jquery生成的,请参考我在问题中提到的示例。a[]=1,&a[]=2&&b=4。这不能简单地反序列化.string queryStr=HttpUtility.urldecodequest.QueryString.ToString;动态d=新的JavaScriptSerializer.DeserializequeryStr;get error Invalid JSON原语:a。有点困惑,我将更新线程中的完整代码。我在这里输入的JSON数据是我从Jquery.Ajax中获得的。这很好,但您不应该发送对象,而应该发送表示该对象的字符串。请随时问我。
 dynamic lst = new JavaScriptSerializer().Deserialize<dynamic>
               (@"{ ""a"": [""1"",""2""], ""b"" : 4}");
var myObject = { "a": ["1,","2&"], "b" : 4 };

console.log(JSON.stringify(myObject));
  data: { "a": ["1,","2&"], "b" : 4 },

to

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