如何从jArray使用LINQ
问题描述:
访问元素我想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”
答
你的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>();
答
试试这个,我认为这是回答你要的东西!
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;}
}