我遇到了一个奇怪的问题,我相信有一种比以下描述更好更有效的方法:
我有一个(Newtonsoft)JArray'ja'有两个元素ja [0]和ja [1],ja打印如下:
[ 1465164019, "{\"date\":{\"y\":16,\"d\":5,\"m\":6},\"DataDesc\":[\"0\",[\"H\",\"M\",\"S\",\"V\",\"L\",\"CL\",\"LTC\"]],\"Data\":[[23,59,23,27,38,1,61252]]}"]
ja [0]和ja [1]都显示正确的值(显示在Visual Studio中):
ja[0] = {1465164019}
ja[1] = {{"date":{"y":16,"d":5,"m":6},"trafficDataDesc":["0",["H","M","S","V","L","CL","LTC"]],"trafficData":[[23,59,23,27,38,1,61252]]}}
我想通过路径“date.m”获取值,如下所示:
String month = ja[1].SelectToken("date.m").ToString();
虽然不起作用,但SelectToken()返回null。但是,如果我通过重新分析来访问它
JObject jo = JObject.Parse(ja[1].ToString());
String month = jo.SelectToken("date.m").ToString();
我得到'6'。通过重新分析ToString()的绕道并不是那么有效或漂亮,虽然我无法让直接版本工作......如何才能正确完成?
非常感谢!