如何从JSON http响应中提取单个元素并将其作为整数传递给C#?
我正在编写一个WCF服务,并试图从下面的JSON字符串中提取SMS的值,该字符串形成http响应。其余的答复对于我的要求来说是多余的如何从JSON http响应中提取单个元素并将其作为整数传递给C#?,c#,json,C#,Json,我正在编写一个WCF服务,并试图从下面的JSON字符串中提取SMS的值,该字符串形成http响应。其余的答复对于我的要求来说是多余的 {"balance":{"sms":100,"mms":2},"status":"success"} 我现在得到的代码只返回“0”作为平衡的整数 public class balanceObject { public int sms { get; set;} public int mms {get; set;}
{"balance":{"sms":100,"mms":2},"status":"success"}
我现在得到的代码只返回“0”作为平衡的整数
public class balanceObject
{
public int sms { get; set;}
public int mms {get; set;}
public string status {get; set;}
}
public int balanceRequest()
{
using (var wb = new WebClient())
{
byte[] response = wb.UploadValues("http://api.txtlocal.com/balance/?apiKey=", new NameValueCollection()
{
{"apiKey" , api},
});
string result = System.Text.Encoding.UTF8.GetString(response);
JavaScriptSerializer js = new JavaScriptSerializer();
balanceObject request = (balanceObject)js.Deserialize(result, typeof(balanceObject));
int balance = request.sms;
return balance;
}
}
如果您有任何建议,我们将不胜感激。您的
balanceObject
与您的JSON不匹配。您的对象应该更像这样:
public class phoneObject
{
public string status {get; set;}
public balanceObject balance {get; set;}
}
public class balanceObject
{
public int sms { get; set;}
public int mms {get; set;}
}
然后,您将检索您的值,如下所示:
phoneObject request = (phoneObject)js.Deserialize(result, typeof(phoneObject));
int balance = request.balance.sms;
return balance;
您的
balanceObject
与您的JSON不匹配。您的对象应该更像这样:
public class phoneObject
{
public string status {get; set;}
public balanceObject balance {get; set;}
}
public class balanceObject
{
public int sms { get; set;}
public int mms {get; set;}
}
然后,您将检索您的值,如下所示:
phoneObject request = (phoneObject)js.Deserialize(result, typeof(phoneObject));
int balance = request.balance.sms;
return balance;
谢谢,工作起来像个符咒一样-就像一个参考注释一样,我必须将
(balanceObject)js.反序列化
改为(phoneObject)js.反序列化
谢谢,工作起来像个符咒一样-就像一个参考注释一样,我必须将(balanceObject)js.反序列化
改为(phoneObject)js.反序列化