如何在Visual Studio 2012中单击“选择性粘贴”时显示“粘贴Json类”?

时间:2013-08-30 06:49:19

标签: c# json visual-studio-2012 json.net

我正在尝试使用vs 2012中的过去特殊功能,以便为我的Json数据生成c#类。 我从Nuget从NewtonSoft下载了Json.New,然后添加了一个新的.cs类,将我的json数据复制到剪贴板,但是当我转到Edit->选择性粘贴 - >我只能看到:粘贴XML作为类只显示粘贴Json作为类功能。有什么建议? 提前谢谢你

这是我得到的,请注意我已经安装了Newtonsoft.Json:

http://icms.indevcogroup.com/uploads/untitled.png

6 个答案:

答案 0 :(得分:21)

我创建了一个新项目,安装了Newtonsoft.Json并添加了一个类。

如果您打开了您的班级文件,请复制您的Json数据并选择编辑 - >选择性粘贴您将看到两个选项:

Paste Special with Json Option

如果你打开了其他类型的文件(例如app.config),你只能看到"将JSON粘贴为As Classes" (而且它是灰色的)

Paste Special - 1 option and greyed out

虽然看起来有点不稳定 - 有时候我必须在数据显示之前重新复制数据。

尝试a)重新复制您的数据b)玩弄你打开的窗口c)重新安装扩展程序

答案 1 :(得分:11)

选择修改>在类文件的代码中粘贴特殊菜单,确保您的类文件所在的Visual Studio项目的“目标框架”设置为:

.NET Framework 3.5 +用于“粘贴 JSON 作为类”

.NET Framework 4.5 +用于“粘贴 XML 作为类”

否则这些选项不会出现。

“目标框架”设置位于项目属性>应用

答案 2 :(得分:4)

您需要安装http://www.microsoft.com/en-au/download/details.aspx?id=41532才能在“选择性粘贴”下显示该选项。

答案 3 :(得分:2)

我有同样的问题。我从解决方案资源管理器中选择了该类,并且只获取了XML选项。我终于将胡萝卜直接放在public class的花括号中,然后导航到编辑 - >'粘贴特殊'。

编辑:更正,在类中生成一个类。相反,我将把插入点放在命名空间中的某个位置。 '粘贴JSON类'然后生成一个公共类Rootobject {}和嵌套在剪贴板JSON中的其他公共类。

答案 4 :(得分:1)

我遇到了同样的问题,发现你的剪贴板中应该有有效的JSON文本。

让它发挥作用的步骤:

  1. 为您的VS(Visual Studio)版本安装Web Essentials。 Web Essentials Download page
  2. 在VS。中创建空类文件。
  3. 将有效的JSON文本复制到剪贴板中。
  4. 您现在将看到"将Json粘贴为类"在编辑 - >下选择性粘贴 - >将Json粘贴为类
  5. 示例输入:

        {
           "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; }
        }
    

答案 5 :(得分:0)

尝试为Visual Studio安装更新 我安装了更新v4,现在我有一个选项“将JSON粘贴为类”