我已经阅读了好几个小时,仍然无法弄清楚如何使用它 在我的按钮下我有
WebClient wc = new WebClient();
Uri uri = new Uri("url");
string json = wc.DownloadString(uri);
var a = JsonConvert.DeserializeObject<RootObject>(json);
和班级
public class Shares
{
public int valid { get; set; }
public int invalid { get; set; }
public int id { get; set; }
public int donate_percent { get; set; }
public int is_anonymous { get; set; }
public string username { get; set; }
}
public class Transactions
{
public double Credit { get; set; }
public double Debit_MP { get; set; }
public double Fee { get; set; }
public int TXFee { get; set; }
}
public class Data
{
public string username { get; set; }
public Shares shares { get; set; }
public int hashrate { get; set; }
public string sharerate { get; set; }
public Transactions transactions { get; set; }
}
public class Getuserstatus
{
public string version { get; set; }
public double runtime { get; set; }
public Data data { get; set; }
}
public class RootObject
{
public Getuserstatus getuserstatus { get; set; }
}
我做了一个消息框来检查URL中的字符串,所有数据都在那里,但是当我调用它们时它没有把它放到字段中它们都是空的
Shares Share = new Shares();
textBox1.Text += "Username: " + Share.username;
编辑: 好吧,我得到它的工作a.getsuerstatus.data.shares.username在api无效我不知道为什么jsontocsharp网站添加了它但所有的数据是用户名实际上是a.getuserstatus.data.username谢谢大家为了帮助或我仍然试图使用Shares Share = new Shares()
来调用数据答案 0 :(得分:1)
以下代码:
Shares Share = new Shares();
textBox1.Text += "Username: " + Share.username;
创建一个Shares
类型对象的新实例,该对象的username
属性初始化为空字符串。
与您要解析的json格式的文本没有关联。
用于解析json字符串的方法:var a = JsonConvert.DeserializeObject<RootObject>(json);
期望生成类型为RootObject
的对象
您需要将textbox1
的Text属性设置为等于已反序列化为Shares
的相应a
对象。
textbox1.Text = a.getUserStatus.data.shares.username;
答案 1 :(得分:0)
问题不在于反序列化,就是这样;
Shares Share = new Shares();
textBox1.Text += "Username: " + Share.username;
反而需要
textBox1.Text += "Username: " + a.getUserStatus.data.username;
a
是json.NET实例化的对象。您需要遍历所有间接访问以访问username
的值,而不仅仅是分配了一个新的Share
实例并访问它的用户名,这两个引用指向完全不同的对象。