Существует ли сочетание клавиш в XCode для реализации Протокола?

Что JSON не является массивом Foo JSON. Код JsonConvert.DeserializeObject(jsonString) будет разбирать строку JSON от корня вверх, а ваш тип T должен точно соответствовать этой структуре JSON. Синтаксический анализатор не собирается гадать , член JSON должен представлять List, который вы ищете.

Вам нужен корневой объект, представляющий JSON из корневой элемент.

Вы можете легко позволить классам делать это, создаваемое из образца JSON. Для этого скопируйте свой JSON и нажмите Edit -> Paste Special -> Paste JSON As Classes в Visual Studio.

В качестве альтернативы вы можете сделать то же самое на http://json2csharp.com , который генерирует больше или меньше тех же классов.

Вы увидите, что коллекция фактически является одним элементом глубже, чем ожидалось:

public class Foo
{
    public string bar { get; set; }
}

public class RootObject
{
    public List foo { get; set; }
}

Теперь вы можете десериализовать JSON из корня (и быть уверенным переименовать RootObject в нечто полезное):

var rootObject = JsonConvert.DeserializeObject(jsonString);

И получить доступ к коллекции:

foreach (var foo in rootObject.foo)
{
    // foo is a `Foo`

}

Вы всегда можете переименовать свойства, чтобы следовать за своим соглашением об обсадке, и применить JsonProperty:

public class Foo
{
    [JsonProperty("bar")]
    public string Bar { get; set; }
}

Также убедитесь, что JSON содержит достаточно данных образца. Парсер класса должен угадать соответствующий тип C # на основе содержимого, содержащегося в JSON.

28
задан The Archetypal Paul 10 November 2008 в 07:45
поделиться

3 ответа

Я не видел ту функцию в XCode. Но кажется, что кто-то мог записать новый пользовательский сценарий, названный "Конструктор места Defs на Буфере обмена", который находится в Сценариях> Код.

Вы не нашли это полезным.

6
ответ дан David Grant 14 October 2019 в 11:36
поделиться

В XCode в настоящее время нет такого рефакторинга.

, Если Вы хотели бы его, зарегистрируйте запрос улучшения .

5
ответ дан Chris Hanson 14 October 2019 в 11:36
поделиться

MAPRUMORUMORS имела обсуждение этого тоже. Есть ссылка на некоторые яблочные скрипты. Я на самом деле не пробовал это.

0
ответ дан 28 November 2019 в 03:37
поделиться