是否有其他方法反序列化JSON字符串,而不是使用Newtonsoft库?我有一个像
这样的字符串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>'}";
如果我想访问代码隐藏文件中的message属性,我该怎么做?
答案 0 :(得分:4)
您可以使用DataContractJsonSerializer
。将其反序列化为具有要提取内容的类,例如
[DataContract]
public class Message
{
[DataMember]
public string message { get; set; }
}
答案 1 :(得分:2)
考虑一下:
您需要这个必需的命名空间:
using System.Web.Script.Serialization;
考虑这个课程:
[Serializable]
public class Foo
{
public int status { get; set; }
public string message { get; set; }
}
使用SerializableAttribute
需要USAGE
JavaScriptSerializer serializer = new JavaScriptSerializer();
// Deserialize
Foo foo = serializer.Deserialize<Foo>(json);
//now you have access to...
var status = foo.status;
var message = foo.message;
您也可以使用JavaScriptSerializer
中的Dictionary
进行反序列化。见:
Dictionary<string, object> ds = serializer .Deserialize<Dictionary<string, object>>(json);
var status = ds["status"].ToString();
var message = ds["message"].ToString();
答案 2 :(得分:0)
创建课程
public class TestM
{
public string status { get; set; }
public string message { get; set; }
}
在代码中使用它
JavaScriptSerializer ser = new JavaScriptSerializer();
TestM t = ser.Deserialize<TestM>("{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>'}");