如何在点击“特殊粘贴”时在Visual Studio 2012中显示“粘贴Json类”?

17

我正在尝试使用VS 2012中的过去特性,为我的Json数据生成C#类。我从Nuget下载了NewtonSoft的Json.New,然后添加了一个新的.cs类,将我的json数据复制到剪贴板中,但是当我进入“编辑”->“特殊粘贴” ->“我只能看到:仅粘贴XML作为类”,而不显示将Json作为类粘贴的功能。有什么建议吗?

请注意,我已经安装了Newtonsoft.Json,以下是我得到的内容:


(来源: indevcogroup.com)

6个回答

22

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

如果您已经打开了类文件,请复制Json数据并选择编辑->粘贴特殊,您将看到两个选项:

使用Json选项的特殊粘贴

如果您打开了其他类型的文件(例如app.config),则仅会看到“粘贴JSON作为类”(并且被灰色禁用)

特殊粘贴-1个选项和灰色禁用

这似乎有点不稳定 - 有时需要重新复制数据才会显示出来。

尝试a)重新复制您的数据b)调整您打开的窗口c)重新安装该扩展程序。


问题是当我点击“特殊粘贴”时,我得到的是“粘贴XML作为类”,而不是JSON。请检查我添加的链接。谢谢。 - Sam
是的,我试过了,但它没有起作用。是否有其他软件可以使用,以便获取我的JSON数据,然后将其缓存在我的应用程序中?我的目标是在我的Windows 8应用程序中应用本地数据缓存。 - Sam

10
在类文件的代码中选取编辑 > 粘贴特殊菜单时,请确保包含该类文件的 Visual Studio 项目已将其“目标框架”设置为:

'粘贴JSON作为类'需设置 .NET Framework 3.5+

'粘贴XML作为类'需设置 .NET Framework 4.5+

否则,这些选项将不会出现。
“目标框架”设置在项目属性 > 应用程序下。

5

3
如果链接在未来失效,下载将指向“Visual Studio 2012的ASP.NET和Web工具2013.1”。 - fernio

3

我曾经遇到同样的问题,后来发现你需要在剪贴板中拥有有效的JSON文本。

以下是使其正常运行的步骤:

  1. 为您的VS(Visual Studio)安装Web Essentials。 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
我遇到了相同的问题。我从解决方案资源管理器中选择了类,但只得到了XML选项。最终,我直接将光标放在public class的大括号中,然后导航到Edit->'Paste Special'。
编辑:更正一下,这会在类内生成一个类。相反,我要将插入点放在命名空间的某个地方。然后,“粘贴JSON类”会生成一个公共类Rootobject{}和其他嵌套在剪贴板JSON中的公共类。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接