網頁

2017年6月4日 星期日

Visual Studio 2017 - 從 JSON 產生 C# 類別檔案

在過去使用 Visual Studio 2013,2015 時,先將 JSON 內容複製起來後,然後使用 Visual Studio 裡的「選擇性貼上」功能就可以產生相對映 JSON 結構的 C# 類別檔,這功能相當方便,我在之前的文章裡也曾經有介紹過「ASP.NET MVC 使用政府公開資料 Part.1」。

但是在 Visual Studio 2017 裡怎麼好像這個功能不見了… 怎麼找都找不到要怎麼把這功能恢復的方法,最後乾脆就直接找其他的擴充功能來取代,這邊就介紹一個我用起來還不錯的給大家。



在 Visual Studio 2017 裡,原本的選擇性貼上裡原有「貼上 JSON 做為類別」的項目不見了…

image

現在我也沒有那麼多時間去找怎麼改設定或是調整什麼的,就直接找看看有沒有可用的擴充功能來補上這個功能,直接在 VS2017 的擴充功能和更新裡直接輸入「json cs file」,但所找到的擴充功能都不是我所想要的(因為我試過啦)

image


要介紹的是「Json2Csharp」這個擴充功能

https://marketplace.visualstudio.com/items?itemName=DangKhuong.JSONtoC

image

image

安裝完畢並重新開啟 VS2017 後就來試用看看,先複製一份 JSON 資料

image
( 資料來源:新北市NewTaipei熱點 )

然後在方案總管理先選擇要建立類別檔案的資料夾,接著點選「工具 > JSON to C#」

image

點選功能項目之後就會出現「Json2Csharp」視窗

image

把剛才所複製的 JSON 資料貼到視窗的左側區塊裡,接著再按下「Generate」就會在右側區塊裡顯示依據 JSON 結構所建立的類別內容,

image

但是這一個功能不能夠直接將右側所產生的類別內容去建立檔案,也就是說最後要建立 cs 檔案的話,就必須先把右側的類別結構內容複製起來,然後建立 cs 檔案後再把類別結構給貼上,就缺了這一個功能,不然就完美了。

不過有提供另外建立 cs 檔案的方式,這個方式就像「選擇性貼上 >貼上 JSON 做為類別」一樣,先把 JSON 資料複製起來,接著在方案總管裡選擇要建立檔案的資料夾,然後按下滑鼠右鍵,選擇「加入 > Generate classes from json…」

image

最後就會依據 JSON 結構建立 cs 檔案

image

建立的完整 cs 檔案內容如下



久違的一篇文章,因為工作上的開發都還是在使用 Visual Studio 2015,很少有機會開啟 Visual Studio 2017 開發專案、寫程式,在使用上還是有很多地方不太習慣,藉由寫文章、寫範例程式的機會來讓自己可以早點習慣。

以上

6 則留言:

  1. 怪了,這在 VS2017 應該是正常的。
    整個移除重新安裝看看呢?

    回覆刪除
    回覆
    1. 也許是我當初安裝時出現問題,所以才會這樣
      反正我也沒那麼多閒時間去移除、重裝、搞一堆設定什麼,就先這樣啦

      刪除
  2. https://developercommunity.visualstudio.com/content/problem/15266/paste-xml-as-classes-is-missing.html

    回覆刪除
  3. 我的 VS 2017 有 "貼上JSON作為類別"

    回覆刪除
  4. 在*.CS才會出現,*.cshtml 只會有xml

    回覆刪除
  5. 一開始沒有出現這個選項
    在 .cs 程式碼貼上複製的JSON文字後,該選項就出現了

    回覆刪除