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文字後,該選項就出現了

    回覆刪除

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。