У меня есть следующий код, и я использую популярную библиотеку Newtonsoft на С#.
string json = {
"students": [
{
"name": "student 1",
"grades": [
{
"subject1": "A",
"subject2": "B"
}
]
}
]
}
JObject rootJObject = JObject.Parse(json);
Я хочу выбрать конкретный студенческий объект. Если я запрашиваю с помощью JSONPath литеральную строку, как показано ниже, я получаю фактический объект
rootJObject.SelectToken("$.students[?(@.name=='student 1')]");
Теперь, если я хочу передать строку запроса во время выполнения, как показано ниже
string studentName = "student 1";
rootJObject.SelectToken($"$.students[?(@.name=={studentName})]");
Выдает исключение вроде "Unexpected character while parsing path query: s"
Является ли ограничением то, что мы можем использовать литеральную строку только с одинарными кавычками в запросе JSONPath, а не строковое значение во время выполнения?
{studentName}
, это должно быть'{studentName}'
- person dbc   schedule 02.03.2018