在整个程序中存储记录的适当方法?

时间:2019-07-03 22:29:36

标签: c# json api

我正在使用Visual Studio创建一个C#表单应用程序,该应用程序使用API​​与服务器进行通信。

  1. 我已经从服务器成功检索了Json字符串,并将数据解析为易于访问的属性。
///elsewhere in program
var jsonparams = JsonParam.DesJson(jsonString);
///

public partial class JsonParam
{
   public List<InsideData> data { get; set; }
   public string errmsg { get; set; }
   public int status { get; set; }
   public int ts { get; set; }
}
public partial class InsideData
{
   public string access_token { get; set; } = "";
   public string alias { get; set; }
   public string uid {get; set;}
   //etc etc
}
public partial class JsonParam
{
   public static JsonParam DesJson(string jsonString) => JsonConvert.DeserializeObject<JsonParam>(jsonString);
}
  1. 我已使用以下命令在comboBox中打印出“别名”:
foreach (var a in jsonParam.data)
{
   comboBox1.Items.Add(a.alias);
}

这正常工作,但是,然后我对几个不同的jsonString重复1和2多次。这使我在comboBox中有几个“别名”条目。

我的下一步是从comboBox中选择一个“别名”并打印出以前从jsonString解析的“ uid”,但是当然,因为我多次调用了JsonParam函数(以获取更多的“ alias”条目) ),则先前的“别名”条目中保存的“ uid”条目已丢失。

每次解析jsonString以便以后可以访问数据时,将所有数据保存在“ InsideData”中的最佳方法是什么?

有点像:
jsonString1.alias
jsonString2.alias

欢呼

1 个答案:

答案 0 :(得分:1)

更改此:

foreach (var a in jsonParam.data)
{
   comboBox1.Items.Add(a.alias);
}

为此:

foreach (var a in jsonParam.data)
{
   ComboboxItem item = new ComboboxItem();
   item.Text = a.alias;
   item.Value = a.uid;
   comboBox1.Items.Add(item);
}