Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
C# 如何在Json数据中使用_C#_Json_Winforms - Fatal编程技术网

C# 如何在Json数据中使用

C# 如何在Json数据中使用,c#,json,winforms,C#,Json,Winforms,这是我的json数据: { "code":1, "msg":"OK", "details":{ "status":"Entregue", "status_list":{ "Pendente":"Pendente", "Cancelado":"Cancelado", "Entregue":"Entregue", "Saiu para entrega":"Saiu para entreg

这是我的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\"}"
}
我需要做一个循环,获取所有详细信息。状态列表并将数据放入复选框,我的代码是:

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,但我不知道如何获取所有状态列表并将其添加到我的复选框中,例如:

文本|值

“Pendente”:“Pendente”

“Cancelado”:“Cancelado”

“Entregue”:“Entregue”

“Saiu para entrega”:“Saiu para entrega”

“Em preparo”:“Em preparo”

“Pronto-para-retirar”:“Pronto-para-retirar”

“衰退”:“衰退”


“accepted”:“accepted”

您可以反序列化到具体类而不是动态类。这将有助于创建更易于绑定到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; } 
}
公共类数据类
{
公共详细信息{get;set;}//因为您只对状态感兴趣
}
公开课详情
{
公共字符串状态{get;set;}
公共词典状态_列表{get;set;}
}
现在可以反序列化为

var statusCollection = JsonConvert.DeserializeObject<DataClass>(ProdutoJsonString).details.status_list;
var statusCollection=JsonConvert.DeserializeObject(ProdutoJsonString).details.status\u list;
输出


现在绑定到checklistbox要比从动态解析值容易得多

如果反序列化到C类而不是
动态
,可能会更好。JSON是序列化的对象数据()。如果您需要它的全部或大部分用于任何事情,请反序列化到集合并将其用作数据源。