在c#中将json解析为字符串时,所有值都不会出现
本文关键字:json 中将 字符串 | 更新日期: 2023-09-27 18:02:25
我在json响应中有json数据字符串。我只能得到请求id值。还有一些是在调试时出现的,但无法从字典类型中检索。你能告诉我如何获得手机号码的其他值-日期,状态和描述。添加的屏幕截图请浏览http://postimg.org/image/6iad15yxl/
my json data
{
"requestId": "546b384ce51f469a2e8b4567",
"numbers": {
"917566551111": {
"date": "2014-11-18 17:45:59",
"status": 1,
"desc": "DELIVERED"
}
}
}
c#代码 public partial class jsontoCsharp : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
json = Request.QueryString["data"];
var req = JsonConvert.DeserializeObject<Request>(json);
string requestid = req.requestId;
}
}
public class smsstatus
{
public string date { get; set; }
public int status { get; set; }
public string desc { get; set; }
}
public class Request
{
public string requestId { get; set; }
public Dictionary<string, smsstatus> numbers { get; set; } //<-- See this line
}
你的模型应该是这样的
public class smsstatus
{
public string date { get; set; }
public int status { get; set; }
public string desc { get; set; }
}
public class Request
{
public string requestId { get; set; }
public Dictionary<string, smsstatus> numbers { get; set; } //<-- See this line
}
现在这些反序列化可以工作了
var req = JsonConvert.DeserializeObject<Request>(json);
或
var req = new JavaScriptSerializer().Deserialize<Request>(json);
由于您的Json相当复杂,请尝试如下操作:
var results = JsonConvert.DeserializeObject<dynamic>(json);
var result
包含您的反序列化json,现在您可以使用点(.)符号访问results
对象