web-dev-qa-db-ja.com

[形式を選択して貼り付け]をクリックしたときに、Visual Studio 2012で「Jsonの貼り付けクラス」を表示するにはどうすればよいですか?

Jsonデータのc#クラスを生成するために、vs2012で過去の特別な機能を使用しようとしています。 NugetのNewtonSoftからJson.Newをダウンロードし、新しい.csクラスを追加して、jsonデータをクリップボードにコピーしましたが、[編集]-> [形式を選択して貼り付け]->に移動すると、次のように表示されます:XMLをクラスとして貼り付けのみ貼り付けクラスとしてのJson機能は表示されていません。助言がありますか?よろしくお願いします

これは私が得ているものであり、Newtonsoft.Jsonをすでにインストールしていることに注意してください:


(出典: indevcogroup.com

16
Sam

新しいプロジェクトを作成し、Newtonsoft.Jsonをインストールして、クラスを追加しました。

クラスファイルを開いている場合は、Jsonデータをコピーし、[編集]-> [形式を選択して貼り付け]を選択すると、次の両方のオプションが表示されます。

Paste Special with Json Option

他の種類のファイル(app.configなど)を開いている場合は、「JSONをクラスとして貼り付ける」のみが表示されます(グレー表示されます)

Paste Special - 1 option and greyed out

ただし、少し不安定に見えます。データが表示される前に、データを再コピーしなければならない場合がありました。

A)データを再コピーするb)開いているウィンドウをいじってみるc)拡張機能を再インストールする

21
Gareth

クラスファイルのコードで[編集]> [形式を選択して貼り付け]メニューを選択するときは、クラスファイルの下にあるVisualStudioプロジェクトの[ターゲットフレームワーク]が次のように設定されていることを確認してください。

.NET Framework .5 + for'Paste [〜#〜] json [〜#〜] as Classes '

.NET Framework 4.5 + for'Paste [〜#〜] xml [〜#〜] as Classes '

それ以外の場合、これらのオプションは表示されません。

「ターゲットフレームワーク」設定はプロジェクトプロパティ>アプリケーションの下にあります。

11
Sean M

[形式を選択して貼り付け]の下にオプションを表示するには、 http://www.Microsoft.com/en-au/download/details.aspx?id=41532 をインストールする必要があります。

4
Guy Lowe

私も同じ問題を抱えていました。ソリューションエクスプローラーからクラスを選択し、XMLオプションのみを取得していました。最後に、ニンジンをpublic classの中括弧に直接入れてから、[編集]-> [形式を選択して貼り付け]に移動しました。

編集:修正。クラス内にクラスを生成します。代わりに、名前空間のどこかに挿入ポイントを配置します。 「JSONクラスの貼り付け」は、クリップボードのJSONにネストされたパブリッククラスRootobject {}およびその他のパブリッククラスを生成します。

2
Asymmetric3.141

同じ問題が発生し、クリップボードに有効なJSONテキストが必要であることがわかりました。

それを機能させるためのステップ:

  1. ご使用のバージョンのVS(Visual Studio)にWebEssentialsをインストールします。 Web Essentialsダウンロードページ
  2. VSで空のクラスファイルを作成します。
  3. 有効なJSONテキストをクリップボードにコピーします。
  4. [編集]-> [形式を選択して貼り付け]-> [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; }
    }
2
Darrelk

Visual Studioの更新プログラムをインストールしてみてください。更新プログラムv4をインストールしましたが、「JSONをクラスとして貼り付ける」オプションがあります。

0
user2005519