代码之家  ›  专栏  ›  技术社区  ›  Alexandra Damaschin

从json中提取第一个元素

  •  0
  • Alexandra Damaschin  · 技术社区  · 7 年前

    怎样才能从JSON中获取第一个元素呢?

    //take result back
        void HandleIncomingMessage(object sender, PEventArgs e)
        {
            RetMessage += e.Result;
            //here can not deserialize correct
            var deserialized_message = JsonConvert.DeserializeObject<Message>(RetMessage);
        }
    

    在这里,我做反序列化,但因为它的整个对象不能解析正确。

    我只需要json。[0]

    编辑:原始JSON:

     [{"unique_id":55,"action_name":"INSERT","start_date":"2018-06-11T16:00:00","end_date":"2018-06-11T17:00:00"},"1sddsd","my_channel"]
    
    3 回复  |  直到 7 年前
        1
  •  3
  •   John Wu    7 年前

    反序列化为 List<dynamic> ,然后读取其第一个元素的属性。

    //using Newtonsoft.Json;
    var input = @"[{""unique_id"":55,""action_name"":""INSERT"",""start_date"":""2018-06-11T16:00:00"",""end_date"":""2018-06-11T17:00:00""},""1sddsd"",""my_channel""]";
    var output = JsonConvert.DeserializeObject<List<dynamic>>(input);
    Console.WriteLine(output[0].unique_id);
    

    输出:

    五十五

    DotNetFiddle

        2
  •  1
  •   aditya    7 年前

    获取json字符串并使用 JSON.net

    //first create object from json
    JObject jObject = JObject.Parse(jsonString);
    //read unique value        
    string jUniqueId = jObject["unique_id"];
    //or
    string firstObject = jObject[0];
    
        3
  •  -1
  •   Mohan Srinivas    7 年前

    解决方案是静态的,

    JObject obj= JObject.Parse(here pass the JSON);
      string id=  JSON[0]["unique_id"],
      string name=  JSON[0]["action_name"],
      string sdate=  JSON[0]["start_date"],
      string edate=  JSON[0]["end_date"]
    

    动态平均通过 而不是0。