如何将JSON字符串反序列化为c#对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我的应用程序是在ASP.NETMVC 3中用C#编码的。这就是我的要求。我想要一个对象,它的格式如下:当我反序列化JSON字符串时,应该实现这个对象。

var obj1 = new { arg1=1,arg2=2 };

使用以下代码之后:

string str = "{\"Arg1\":\"Arg1Value\",\"Arg2\":\"Arg2Value\"}";
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
object obje = serializer1.Deserialize<object>(str);

我得到的对象奥布里不充当obj 1

这里,在这个示例中,我的JSON字符串是静态的,但实际上JSON字符串将是动态生成的运行时,所以我无法始终获得Arg 1和Arg 2。

提问于
用户回答回答于

JavaScriptSeriizer不会创建一个动态对象。

因此,您应该首先定义类:

class MyObj {
    public int arg1 {get;set;}
    public int arg2 {get;set;}
}

而不是object:

serializer.Deserialize<MyObj>(str);

用户回答回答于

string str = "{\"Arg1\":\"Arg1Value\",\"Arg2\":\"Arg2Value\"}";
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
object obje = serializer1.Deserialize(str, obj1.GetType());

扫码关注云+社区