首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将JSON字符串反序列化为c#对象

将JSON字符串反序列化为c#对象
EN

Stack Overflow用户
提问于 2012-04-27 20:54:20
回答 6查看 112.5K关注 0票数 26

我的应用程序是用Asp.Net MVC3编写的,用C#编写。这就是我的要求。当我反序列化Json字符串时,我想要一个在下面的format.This对象中的对象。

代码语言:javascript
复制
var obj1 = new { arg1=1,arg2=2 };

使用以下代码后:

代码语言:javascript
复制
string str = "{\"Arg1\":\"Arg1Value\",\"Arg2\":\"Arg2Value\"}";
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
object obje = serializer1.Deserialize<object>(str);

我得到的对象,即obje并不充当obj1

在本例中,我的JSON字符串是静态的,但实际上JSON字符串将在运行时动态生成,所以我不能一直获取Arg1和Arg2。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-27 21:10:54

我认为JavaScriptSerializer不会创建动态对象。

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

代码语言:javascript
复制
class MyObj {
    public int arg1 {get;set;}
    public int arg2 {get;set;}
}

并将其反序列化,而不是object

代码语言:javascript
复制
serializer.Deserialize<MyObj>(str);

不是testet,请尝试。

票数 20
EN

Stack Overflow用户

发布于 2017-09-27 18:45:34

使用以下代码:

代码语言:javascript
复制
var result=JsonConvert.DeserializeObject<List<yourObj>>(jsonString);
票数 12
EN

Stack Overflow用户

发布于 2012-04-27 21:13:44

我相信你正在寻找这个:

代码语言:javascript
复制
string str = "{\"Arg1\":\"Arg1Value\",\"Arg2\":\"Arg2Value\"}";
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
object obje = serializer1.Deserialize(str, obj1.GetType());
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10350982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档