我正在处理日期和时间但我的json文件将最新的实例放在第一位。我希望能够以线性顺序([0,1,2,3])从最旧到最新的entrie迭代数组。我使用Newtonsoft反序列化json。我如何改变这个顺序呢?
这是我的对象
// Converts json file to a serialized array of locations
JsonObjector jObj = JsonConvert.DeserializeObject<JsonObjector>(jsonFile);
以下是json的一小部分样本
{
"locations" : [ {
"timestampMs" : "1482139582626",
"latitudeE7" : 611636226,
"longitudeE7" : -1498703826,
"accuracy" : 23
}, {
"timestampMs" : "1482139560770",
"latitudeE7" : 611636226,
"longitudeE7" : -1498703826,
"accuracy" : 23
}, {
"timestampMs" : "1482139441012",
"latitudeE7" : 611636226,
"longitudeE7" : -1498703826,
"accuracy" : 23
}, {
"timestampMs" : "1482139355650",
"latitudeE7" : 611636226,
"longitudeE7" : -1498703826,
"accuracy" : 23
} ]
}
这是我的课程
public class JsonObjector
{
public Location[] locations { get; set; }
}
public class Location
{
public string timestampMs { get; set; }
public int latitudeE7 { get; set; }
public int longitudeE7 { get; set; }
public int accuracy { get; set; }
}
答案 0 :(得分:0)
您可以使用LINQ按照您想要的顺序对Location
个对象进行排序:
JsonObjector jObj = JsonConvert.DeserializeObject<JsonObjector>(jsonFile);
foreach(var location in jObj.locations.OrderBy(l => l.timestampsMs))
// use location
注意:Newtonsoft json反序列化器不会更改对象的顺序。
答案 1 :(得分:0)
这对我有用。感谢每个人的帮助!
JsonObjector jObj = JsonConvert.DeserializeObject<JsonObjector>(jsonFile);
Array.Reverse(jObj.locations);