2014-12-02 80 views
0
{"balances-and-info":{"on_hold":[],"available": {"USD":0.93033384},"usd_volume":"243.18","fee_bracket": {"maker":"0.00","taker":"0.60"},"global_usd_volume":"0.09942900"}} 

我有这样的JSON响应,我试图将其存储在一个对象,但是你可以看到“平衡和-信息”不能被用作变量名。我一直在使用的方法是:使用JSON响应

RestClient client = new RestClient("http://currency-api.appspot.com/api/"); 
RestRequest request = new RestRequest(url); 

var response = client.Execute<Currency>(request); 

Currency obj = response.Data; 

凡显然类是轻松了许多

public class Currency 
{ 
    public string rate { get; set; } 
} 

所以,我该怎么处理呢?

回答

-1

与string.replace()在你的代码

YourObject deserialized = parseResponse(obj.replace("balances-and-info", "balances_and_info")); 

YourObject parseResponse(string response) { 
    try 
    { 
     // https://www.nuget.org/packages/Newtonsoft.Json/ 
     // Json.NET 
     YourObject ret = JsonConvert.DeserializeObject<YourObject>(response); 
     return ret; 
    } 
    catch (JsonSerializationException) 
    { 
     // do something 
    } 
    return null; 
} 

YourObject

使用http://json2csharp.com/与balances_and_info

余额-和信息,并生成你的对象(复制响应字符串,用balances_and_info替换balances-and-info并生成)

public class Available 
{ 
    public double USD { get; set; } 
} 

public class FeeBracket 
{ 
    public string maker { get; set; } 
    public string taker { get; set; } 
} 

public class BalancesAndInfo 
{ 
    public List<object> on_hold { get; set; } 
    public Available available { get; set; } 
    public string usd_volume { get; set; } 
    public FeeBracket fee_bracket { get; set; } 
    public string global_usd_volume { get; set; } 
} 

public class YourObject 
{ 
    public BalancesAndInfo balances_and_info { get; set; } 
} 
+0

不是正确的单词,但你指出我在正确的方向。得到它的工作 - 谢谢你! – 2014-12-02 23:32:11

+0

我很高兴它的帮助,仍然代码错过来自编码直接进入浏览器在凌晨2点:) – SilentTremor 2014-12-03 07:50:19