C# 从JSON中提取第一个元素

C# 从JSON中提取第一个元素,c#,json,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<Messa

如何从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);
    }

解决方案是静态的

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。

解决方案是静态

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。

获取json字符串并使用


获取json字符串并使用

反序列化到
列表
,然后读取其第一个元素的属性

//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);
//使用Newtonsoft.Json;
var input=@“[{”唯一id“:55”,“操作名称“:”插入“,”开始日期“:”2018-06-11T16:00:00“,”结束日期“:”2018-06-11T17:00:00“,”1SDSD“,”我的频道“];
var输出=JsonConvert.DeserializeObject(输入);
Console.WriteLine(输出[0]。唯一的\u id);
输出:

五十五

反序列化到
列表
,然后读取其第一个元素的属性

//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);
//使用Newtonsoft.Json;
var input=@“[{”唯一id“:55”,“操作名称“:”插入“,”开始日期“:”2018-06-11T16:00:00“,”结束日期“:”2018-06-11T17:00:00“,”1SDSD“,”我的频道“];
var输出=JsonConvert.DeserializeObject(输入);
Console.WriteLine(输出[0]。唯一的\u id);
输出:

五十五



JSON[0]
..?显示原始JSON…如果发布原始JSON字符串而不是调试窗格的图像,此问题将得到极大改善。由于JSON是非结构化的,因此需要使用动态解析,将其解析为
JArray
,然后抓取第一个元素并将其反序列化到您的
消息类型中。这应该可以工作:
JArray.Parse(json)[0].ToObject()
json[0]
..?显示原始json…如果您发布原始json字符串而不是调试窗格的图像,这个问题将得到极大的改进。因为您的json是非结构化的,您需要使用动态解析,将其解析为
JArray
,然后获取第一个元素并将其反序列化为您的
消息
类型。这应该可以工作:
JArray.parse(json)[0]。ToObject()
。您的意思是
JArray.parse
。否,它是Newtonsoft.Json.Linq的
JObject.Parse
,你的意思是
JArray.Parse
。不,它是
Newtonsoft.Json.Linq的
JObject.Parse
,否决的原因:什么是
Json
JSON
从何而来?您现在遇到了与aditya相同的问题。否决投票的原因:什么是
JSON
JSON
从何而来?您现在遇到了与aditya相同的问题。您是对的,这有助于我对其进行反序列化。谢谢你是对的,这有助于我反序列化它。谢谢