Sha*_*hty 21 c# json c#-4.0 asp.net-mvc-3
我的应用程序是在用C#编码的Asp.Net MVC3中.这就是我的要求.我想要一个以下格式的对象.当我反序列化Json字符串时,应该实现这个对象.
var obj1 = new { arg1=1,arg2=2 };
Run Code Online (Sandbox Code Playgroud)
使用以下代码后:
string str = "{\"Arg1\":\"Arg1Value\",\"Arg2\":\"Arg2Value\"}";
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
object obje = serializer1.Deserialize<object>(str);
Run Code Online (Sandbox Code Playgroud)
我得到的对象即obje不作为obj1
在这个示例中,我的JSON字符串是静态的,但实际上JSON字符串将是动态生成的运行时,因此我无法一直获得Arg1和Arg2.
Mar*_*arc 19
我认为JavaScriptSerializer不会创建动态对象.
所以你应该首先定义类:
class MyObj {
public int arg1 {get;set;}
public int arg2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
并反序化,而不是object
:
serializer.Deserialize<MyObj>(str);
Run Code Online (Sandbox Code Playgroud)
不是测试,请尝试.
小智 7
我相信你在寻找这个:
string str = "{\"Arg1\":\"Arg1Value\",\"Arg2\":\"Arg2Value\"}";
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
object obje = serializer1.Deserialize(str, obj1.GetType());
Run Code Online (Sandbox Code Playgroud)
小智 5
使用此代码:
var result=JsonConvert.DeserializeObject<List<yourObj>>(jsonString);
Run Code Online (Sandbox Code Playgroud)