首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在后台代码中反序列化JSON字符串

在后台代码中反序列化JSON字符串
EN

Stack Overflow用户
提问于 2011-12-21 00:19:20
回答 3查看 3.8K关注 0票数 1

除了使用Newtonsoft库之外,还有其他方法可以反序列化JSON字符串吗?我有一个像这样的字符串

代码语言:javascript
复制
string json = "{status : '1',message : '<tr><th>Date</th><th>Description</th><th>Reference</th>  <th>Code</th><th>Dept Code</th><th>Debit</th><th>Credit</th></tr>'}";

如果我想访问代码隐藏文件中的消息属性,我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-21 00:26:53

  1. 创建类

public class TestM { public string status { get;set;}公共字符串消息{ get;set;}}

  • 然后在代码中使用

JavaScriptSerializer ser = JavaScriptSerializer();TestM t=ser.Deserialize(“{状态:'1',消息:'DateDescriptionReference CodeDept CodeDebitCredit'}");

票数 0
EN

Stack Overflow用户

发布于 2011-12-21 00:23:14

你可以使用DataContractJsonSerializer。将其反序列化为您想要提取的类,例如

代码语言:javascript
复制
[DataContract]
public class Message
{
    [DataMember]
    public string message { get; set; }
}
票数 4
EN

Stack Overflow用户

发布于 2011-12-21 00:27:29

请考虑以下内容:

您需要以下所需的名称空间:

代码语言:javascript
复制
using System.Web.Script.Serialization;

考虑这个类:

代码语言:javascript
复制
[Serializable]
public class Foo
{
   public int status { get; set; }
   public string message { get; set; }
}

要使用JavaScriptSerializer,需要使用SerializableAttribute

用法

代码语言:javascript
复制
JavaScriptSerializer serializer = new JavaScriptSerializer();

// Deserialize

Foo foo = serializer.Deserialize<Foo>(json);

//now you have access to...

var status = foo.status;
var message = foo.message;

您也可以在Dictionary中使用JavaScriptSerializer进行反序列化。请看以下内容:

代码语言:javascript
复制
Dictionary<string, object> ds = serializer .Deserialize<Dictionary<string, object>>(json);

var status = ds["status"].ToString();
var message = ds["message"].ToString();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8578498

复制
相关文章

相似问题

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