Как показать "вставить класс Json" в visual studio 2012, нажав на "Специальная вставка"?

Я пытаюсь использовать прошлую специальную функцию в 2012 году, чтобы создать класс С# для моих данных Json. Я скачал Json.New из NewtonSoft из Nuget, а затем добавил новый класс .cs, скопировал мои данные json в буфер обмена, но когда я захожу в Edit-> Вставить специальный → Я вижу только: Вставить XML как классы только Вставить Json, поскольку функция классов не отображается. Какие-либо предложения? Заранее спасибо

Это то, что я получаю, и обратите внимание, что я уже установил Newtonsoft.Json:


(источник: indevcogroup.com)

Ответ 1

Я создал новый проект, установил Newtonsoft.Json и добавил класс.

Если у вас открыт файл класса, скопируйте данные Json и выберите Edit → Paste Special, вы увидите обе опции:

Paste Special with Json Option

Если у вас открыт какой-либо другой файл (например, app.config), вы увидите только "Вставить JSON как классы As" (и он неактивен)

Paste Special - 1 option and greyed out

Кажется, что это немного шелушится - иногда мне приходилось переписывать данные, прежде чем они появятся.

Попробуйте a) повторить ваши данные; b) поиграть с открытыми окнами; c) переустановить расширение

Ответ 2

При выборе меню Редактировать > Вставить специальное в коде файла класса убедитесь, что проект Visual Studio, в котором находится ваш файл класса, имеет свою "Target Framework", установленную на:

.NET Framework 3.5 + для 'Вставить JSON как классы

.NET Framework 4.5 + для 'Вставить XML как классы

В противном случае эти параметры не отображаются.

Параметр "Целевая структура" находится под Свойства проектa > Приложение.

Ответ 4

У меня была такая же проблема. Я выбирал класс из проводника решений и получал только параметр XML. Я, наконец, положил свою морковь прямо в фигурные скобки public class, затем перешел в Edit → "Special Special".

Изменить: Коррекция, которая генерирует класс внутри класса. Вместо этого я собираюсь помещать точку ввода в пространство имен. Затем "Paste JSON classes" генерирует открытый класс Rootobject {} и другие общедоступные классы, которые вложены в буфер обмена JSON.

Ответ 5

У меня была такая же проблема, и я обнаружил, что у вас должен быть действующий текст JSON в вашем буфере обмена.

Шаги, чтобы заставить его работать:

  • Установите Web Essentials для вашей версии VS (Visual Studio). Страница загрузки веб-сайтов
  • Создать пустой файл класса в VS.
  • Скопируйте действующий текст JSON в буфер обмена.
  • Теперь вы увидите "Вставить Json как классы" в разделе "Редактировать" → "Специальная вставка" → "Вставить Json как классы"

Пример ввода:

    {
       "firstName":"John",
       "lastName":"Smith",
       "age":25,
       "address":{
          "streetAddress":"21 2nd Street",
          "city":"New York",
          "state":"NY",
          "postalCode":"10021"
       },
       "phoneNumber":[
          {
             "type":"home",
             "number":"212 555-1234"
          },
          {
             "type":"fax",
             "number":"646 555-4567"
          }
       ]
    }

Пример вывода:

    public class Rootobject
    {
        public string firstName { get; set; }
        public string lastName { get; set; }
        public int age { get; set; }
        public Address address { get; set; }
        public Phonenumber[] phoneNumber { get; set; }
    }

    public class Address
    {
        public string streetAddress { get; set; }
        public string city { get; set; }
        public string state { get; set; }
        public string postalCode { get; set; }
    }

    public class Phonenumber
    {
        public string type { get; set; }
        public string number { get; set; }
    }

Ответ 6

Попробуйте установить обновление для Visual Studio Я установил обновление v4, и теперь у меня есть опция "Вставить JSON As Classes"