#c# #json.net #jsonpath
Вопрос:
Задано JToken
заданное расстояние со следующим содержанием
{ "232": { "travelDistance": 25.0 } }
Я хотел бы прочитать полевое расстояние от него. Сначала я попробовал это
distance.TryGetPropertyValue("travelDistance", float.MaxValue)
но это возвращает запасное значение float.MaxValue
. Затем я попытался использовать путь в формате JSON
distance.SelectToken("$.travelDistance")
но это возвращается null
. Это мои результаты отладки
Как я могу прочитать значение свойства travelDistance?
Ответ №1:
С JObject
помощью вы можете прочитать значения полей
var jObj = JObject.Parse(jsonString);
var result = Convert.ToDecimal(jObj["232"]["travelDistance"]);
или
var result1 = Convert.ToDecimal(jObj.SelectToken("232.travelDistance"));
или
var result2 = Convert.ToDecimal(jObj.SelectToken("*.travelDistance"));
или
var result3 = jObj.SelectTokens("*.travelDistance")
.Select(x => Convert.ToDecimal(x))?
.FirstOrDefault();