从JSON中提取第一个元素

时间:2018-06-11 09:36:18

标签: c# json

我怎样才能从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]

{{3}}

编辑:Raw 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 个答案:

答案 0 :(得分:2)

反序列化为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);

输出:

55

DotNetFiddle

答案 1 :(得分:0)

如何获取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];

答案 2 :(得分:-1)

解决方案是静态的,

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"]

动态意味着传递 i 而不是0。