2017-07-28 27 views
0

访问元素我想jArray的第一或默认元素为对象如何从jArray使用LINQ

{[ 
    { 
    "timex": "XXXX-08-25", 
    "type": "date", 
    "value": "2016-08-25" 
    }, 
    { 
    "timex": "XXXX-08-25", 
    "type": "date", 
    "value": "2017-08-25" 
    } 
]} 

(该阵列可以是通过下一次调用不同),我怎样才能得到的值linq对象中的第一个元素的“值”?这个:“2016-08-25”

回答

0

你的json似乎无效,因为它是以“{[”开头的。在有效的JSON输入您可以使用此代码:

var input = "[ { \"timex\": \"XXXX-08-25\",\r\n \"type\": \"date\",\r\n \"va2lue\": \"2016-08-25\"\r\n },\r\n {\r\n \"timex\": \"XXXX-08-25\",\r\n \"type\": \"date\",\r\n \"value\": \"2017-08-25\"\r\n }\r\n]"; 
var jArray = JArray.Parse(input); 
var result = jArray.FirstOrDefault()?["value"]?.Value<DateTime>(); 
1

试试这个,我认为这是回答你要的东西!

var myData = {[ 
    { 
    "timex": "XXXX-08-25", 
    "type": "date", 
    "value": "2016-08-25" 
    }, 
    { 
    "timex": "XXXX-08-25", 
    "type": "date", 
    "value": "2017-08-25" 
    } 
]} 

List<MyDataList> _myDataList = new List<MyDataList>(); 

foreach(var item in myData) 
{ 
    MyDataList _myDataListObject = new MyDataList(); 

    Dictionary<string, object> desirializedJsonObject = JsonConvert.DeserializeObject<Dictionary<string, object>>(item.ToString()); 

    myDataListObject.timex = Convert.ToString(desirializedJsonObject["timex"]); 
    myDataListObject.type= Convert.ToString(desirializedJsonObject["type"]); 
    myDataListObject.value = Convert.ToString(desirializedJsonObject["value"]); 

    myDataList.Add(myDataListObject); 
} 

//Get first records data 
MyDataList _myData = myDataList.FirstOrDefault(); 

//Your class to get data 
public class MyDataList 
{ 
    public string timex {get; set;} 
    public string type {get; set;} 
    public string value {get; set;} 
}