这是我的json数据:
{
"code":1,
"msg":"OK",
"details":{
"status":"Entregue",
"status_list":{
"Pendente":"Pendente",
"Cancelado":"Cancelado",
"Entregue":"Entregue",
"Saiu para entrega":"Saiu para entrega",
"Em preparo":"Em preparo",
"Pronto para retirar":"Pronto para retirar",
"decline":"decline",
"accepted":"accepted"
}
},
"request":"{\"token\":\"lg1c4shf81tj144ee0577f2f143053919d92ef8788b4109\",\"user_type\":\"admin\",\"mtid\":\"5\",\"order_id\":\"4683\",\"lang\":\"br\",\"api_key\":\"d6f5cc3b22423f2a15322013bb7caf2a\",\"app_version\":\"2.5\",\"merchant_device_id\":\"device_555\",\"device_platform\":\"Android\"}"
}
我需要进行循环,将所有iten都包含在details.status_list中,并将数据放入复选框中,我的代码是:
var ProdutoJsonString = await response.Content.ReadAsStringAsync();
ProdutoJsonString = ProdutoJsonString.Replace("(", "").Replace(")", "");
dynamic dados_msg = JObject.Parse(ProdutoJsonString);
//dados_msg = dados_msg.details.data;
try
{
//Verifico se o servidor irá retornar os dados
Console.WriteLine(dados_msg);
//Altero a mensagem recebido, filtrando os pedidos
dados_msg = dados_msg;
Console.Write(dados_msg);
int i = 0;
foreach (var status_list in dados_msg.details)
{
var itemName = status_list;
Console.WriteLine(itemName);
listaStatus.Items.Insert(i, itemName);
i++;
}
此代码捕获json,但我不知道如何获取所有status_list并将其添加到我的复选框中,例如:
文字|值
“ Pendente”:“ Pendente”
“ Cancelado”:“ Cancelado”
“ Entregue”:“ Entregue”
“ Saiu para entrega”:“ Saiu para entrega”
“ Em准备”:“ Em准备”
“ Pronto para retirar”:“ Pronto para retirar”
“拒绝”:“拒绝”
“已接受”:“已接受”
答案 0 :(得分:1)
您可以反序列化具体类而不是动态类。这将有助于创建更易于绑定到CheckListBox的集合。
例如,
public class DataClass
{
public Details details { get; set; } // Since you are only interested in Status
}
public class Details
{
public string status { get; set; }
public Dictionary<string,string> status_list { get; set; }
}
现在您可以反序列化为
var statusCollection = JsonConvert.DeserializeObject<DataClass>(ProdutoJsonString).details.status_list;
输出
现在绑定到清单框比解析动态值更容易