Sabhani Vipul Ответов: 3

Невозможно десериализовать текущий объект json, потому что(например, {"name":"value"}) в тип, потому что тип требует массива json (например, [1, 2, 3])


Когда я конвертирую строку в объект Json, то ошибка этого типа ошибки отображается.(
Cannot deserialize the current json object because(e.g.{"name":"value"}) into type because the type requires a json array (e.g.[1,2,3])



строка формата JSON......
{
  "success": 1,
  "login": [
    {
      "username": "123456",
      "password": "123456",
      "store_authority": "Yes",
      "fyear": "2018-19"
    }
  ]
}


Что я уже пробовал:

string Post_Status = "http://123456.com/webapi/login.php?username=" + username + "&password=" + password + "";
                WebClient webClient = new WebClient();
                webClient.Headers.Add("user-agent", "Only a test!");
                string json = webClient.DownloadString(Post_Status);
                var model = JsonConvert.DeserializeObject<List<RootObject>>(json);

public class RootObject
        {
            public string success { get; set; }
            public List<Login> login { get; set; }
        }

public class Login
        {
            public string username { get; set; }
            public string password { get; set; }		
            public string store_authority { get; set; }		
            public string fyear { get; set; }		
        }

Richard MacCutchan

Вы серьезно публикуете свой пароль в открытом тексте прямо из вашего приложения?

Sabhani Vipul

эта запись не является реальным только шоу для решения...

3 Ответов

Рейтинг:
25

Andy Lanng

Следующий Json

{
  "success": 1,
  "login": [
    {
      "username": "123456",
      "password": "123456",
      "store_authority": "Yes",
      "fyear": "2018-19"
    }
  ]
}

Не является перечислимым из "корневых объектов". Он содержит список, но не является таковым.

Правильный способ десериализации это:
var model = JsonConvert.DeserializeObject<RootObject>(json);


Чтобы быть действительным JSON для вашего desrializer он должен был бы выглядеть следующим образом:
[{
  "success": 1,
  "login": [
    {
      "username": "123456",
      "password": "123456",
      "store_authority": "Yes",
      "fyear": "2018-19"
    }
  ]
}]

Обратите внимание на дополнительные квадратные скобки

Надеюсь, это поможет
Энди


Рейтинг:
15

F-ES Sitecore

JsonConvert.DeserializeObject<List<RootObject>>(json);


Вы десериализуете json в массив объектов RootObject, однако json не содержит массива этих элементов, только один, поэтому десериализуйте только RootObject, вам не нужен список.


Рейтинг:
0

Member 12756862

<<a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a><a href=""></a>sadsad<a href=""></a>