Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JSON http响应中提取单个元素并将其作为整数传递给C#?_C#_Json - Fatal编程技术网

如何从JSON http响应中提取单个元素并将其作为整数传递给C#?

如何从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;}

我正在编写一个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;}
        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.反序列化