Используя Newtonsoft. Json. Как сделать JObject.SelectToken, когда имя токена "['token_name']"? - PullRequest
1 голос
/ 27 мая 2020

Использование Newtonsoft. Json У меня есть следующее JSON

{"['token_name']":"0.00"}

Попытка

string s = "{\"['token_name']\":\"0.00\"}";
jsonObj = JObject.Parse(s);
myPJObject.SelectToken("['token_name']")

возвращает null. Я пробовал разные варианты, например

myPJObject.SelectToken("[\"['token_name']\"]")

, но не смог найти тот, который работает.

Как мне выбрать этот токен?

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Другое возможное решение - использовать индексатор вместо SelectToken для обработки этого случая:

var myPJObject = jsonObj["['token_name']"];

Это работает, потому что индексатор не использует синтаксис JsonPath; он всегда принимает дословное имя свойства.

Fiddle: https://dotnetfiddle.net/chNG3E

1 голос
/ 27 мая 2020

Это должно сделать это:

jsonObj.SelectToken(@"['[\'token_name\']']")

JObject имеет свойство Path (вы можете попробовать jsonObj.First.Path для своего кода), которое в этом случае вернет строку "['[\'token_name\']']", все осталось для обработки символов ecape \ с дословным строковым префиксом, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...