17

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

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


(来源:indevcogroup.com

4

6 回答 6

22

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

如果你打开了你的类文件,复制你的 Json 数据并选择 Edit -> Paste Special 你会看到两个选项:

使用 Json 选项选择性粘贴

如果您打开了其他类型的文件(例如 app.config),您只会看到“将 JSON 粘贴为类”(并且显示为灰色)

选择性粘贴 - 1 个选项并显示为灰色

不过,它看起来确实有点不稳定——有时我不得不重新复制数据才能显示出来。

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

于 2013-08-30T07:57:04.353 回答
10

在类文件的代码中选择“编辑”>“选择性粘贴”菜单时,确保类文件所在的 Visual Studio 项目的“目标框架”设置为:

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

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

否则这些选项不会出现。

“目标框架”设置位于Project Properties > Application下。

于 2014-02-14T21:43:07.287 回答
4

您需要安装http://www.microsoft.com/en-au/download/details.aspx?id=41532以获取出现在选择性粘贴下的选项。

于 2014-10-27T05:02:35.417 回答
2

我遇到过同样的问题。我从解决方案资源管理器中选择了课程,并且只获得了XML选项。我终于把我的胡萝卜直接放在了 的花括号中public class,然后导航到 Edit->'Paste Special'。

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

于 2015-12-27T05:59:35.257 回答
2

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

使其工作的步骤:

  1. 为您的 VS (Visual Studio) 版本安装 Web Essentials。Web Essentials 下载页面
  2. 在 VS 中创建空的类文件。
  3. 将有效的 JSON 文本复制到剪贴板。
  4. 您现在将在 Edit -> Paste Special -> Paste Json as Classes 下看到“Paste Json as Classes”

样本输入:

    {
       "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; }
    }
于 2016-06-03T09:42:40.217 回答
0

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

于 2013-12-06T21:49:21.830 回答