«Невозможно выполнить привязку во время выполнения для пустой ссылки» из JsonConvert.DeserializeObject <dynamic>(ответ) - PullRequest
0 голосов
/ 14 октября 2019

В моем коде я получаю сообщение об ошибке

"Невозможно выполнить привязку во время выполнения для пустой ссылки"

Обратите внимание, что ответ поступает от серверного API,образец данных прилагается.

Я специально разбил код, поскольку у меня есть специальный метод, который будет выводить динамический объект, но для целей тестирования я избегаю этого.

var response = NetworkHelper.GET( url );
var result = JsonConvert.DeserializeObject<dynamic>( response );

Ошибкабросается в следующую строку кода

if (result.UniqueIdentifier != null && result.UniqueIdentifier != 0)

Пример данных

{
    "UniqueIdentifier":8529685323871177582,
    "Id":{},
    "IsLAN":false,
    "Language":"English"
}

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 14 октября 2019

Ваша проблема в том, что JSON экранирован, а ваша переменная результата в основном является строковым типом.

Вам необходимо правильно удалить его и затем десериализовать.

var token = JToken.Parse(response );
var result = JsonConvert.DeserializeObject<dynamic>(token.ToString());

if(result.UniqueIdentifier=!0)
{
  // do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...