При анализе значения обнаружен неожиданный символ: [

Мой JSON выглядит следующим образом

{
   "@odata.context":"https://graph.microsoft.com/V1.0/$metadata#users",
   "value":[
      {
         "businessPhones":[

         ],
         "displayName":"dee",
         "givenName":null,
         "jobTitle":null,
         "mail":"[email protected]",
         "mobilePhone":null,
         "officeLocation":null,
         "preferredLanguage":null,
         "surname":null,
         "userPrincipalName":"79_gmail.com#EXT#@web.onmicrosoft.com",
         "id":"08fab3-6f-4dc9-9ffb-6568d172"
      },
      {
         "businessPhones":[
            "973"
         ],
         "displayName":"Technologies LLP",
         "givenName":"SHA",
         "jobTitle":null,
         "mail":null,
         "mobilePhone":"8762",
         "officeLocation":null,
         "preferredLanguage":"en-U",
         "surname":"SHAI",
         "userPrincipalName":"[email protected]",
         "id":"2adf-94cd-45-83ef-d0dbf1e36"
      },
      {
         "businessPhones":[

         ],
         "displayName":"admin of smartogle",
         "givenName":null,
         "jobTitle":null,
         "mail":null,
         "mobilePhone":null,
         "officeLocation":null,
         "preferredLanguage":"en-US",
         "surname":null,
         "userPrincipalName":"[email protected]",
         "id":"1754-d6-40-9ae2-d816063e"
      },
      {
         "businessPhones":[

         ],
         "displayName":"av",
         "givenName":null,
         "jobTitle":null,
         "mail":null,
         "mobilePhone":null,
         "officeLocation":null,
         "preferredLanguage":"en-US",
         "surname":null,
         "userPrincipalName":"[email protected]",
         "id":"6837-08-449-a6ab-78b"
      }
   ]
}

Я использую следующий код для преобразования json в список объектов

MyObject obj = JsonConvert.DeserializeObject<MyObject>(members);

Класс MyObject выглядит следующим образом

public class MyError
{
    public List<values> value;
}
public class values
{
    public string id;
    public string userPrincipalName;
    public string surname;
    public string preferredLanguage;
    public string officeLocation;
    public string mobilePhone;
    public string mail;
    public string jobTitle;
    public string givenName;
    public string displayName;
    public string businessPhones;

}

При конвертации я получаю следующую ошибку

При анализе значения обнаружен неожиданный символ: [. Путь 'value [0] .businessPhones', строка 1, позиция 97.

Когда я удаляю общедоступную строку businessPhones; из класса остальные данные анализируются в список объектов. Но на самом деле мне нужны и бизнес-телефоны.


person rakshithrai    schedule 29.07.2019    source источник
comment
Что такое List в public List value;? Также businessPhones - это массив в вашем JSON. Простое решение таких проблем десериализации JSON: сравните свою модель с JSON.   -  person Llama    schedule 29.07.2019
comment
businessPhones - это multi value поля, и вы определили их как строку.   -  person Kalpesh Boghara    schedule 29.07.2019
comment
businessPhones кажется массивом строк, поэтому вы должны объявить его как таковой   -  person Sir Rufo    schedule 29.07.2019
comment
спасибо преобразование BusinessPhones в список массивов решил проблему   -  person rakshithrai    schedule 29.07.2019


Ответы (1)


как указали несколько человек, вы должны объявить businessPhones как массив:

public string[] businessPhones;
person 4c74356b41    schedule 29.07.2019