JSON真好用-產生與接收的簡單範例

使用JSON比起傳統的Web Service的XML實在好用太多,不用搞WSDL,還要處理Parser的問題,真的很麻煩。

最終WebApi一定會變成網頁傳遞資料的主流,NET MVC架構裡的ApiController實在很犀利。以下範例可以在ApiController直接產生json檔案輸出,讓對方讀取,直接用Dictionary就變成JSON資料,這個讚。

[HttpGet]
public Dictionary<string, string> GetLoginToken()
{
	var result = new Dictionary<string, string>();
	try
	{
		result.Add("token", DoSomething());
		result.Add("ErrMsg", "");
	}
	catch (Exception e)
	{
		result.Add("token", "");
		result.Add("ErrMsg", e.Message);
	}
	return result;
}

既然 Dictionary 可以轉JSON,那麼JSON可以轉為 Dictionary 嗎?當然可以喔,如下:

// 設定GET網址與表頭
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("https://localhost:44366/api/login/Test?token=abc");
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
// 接收回傳的資料
string responseStr = "";
using (System.Net.WebResponse response = request.GetResponse())
{
    using (System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8))
    {
        responseStr = sr.ReadToEnd();
    }
}

// 印出接收的資料
//Response.Write(responseStr);
//Response.End();

// 不印出資料但把接收的JSON資料轉出來用
var payload = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseStr);
Response.Write(payload["VerifyPass"]);
Response.End();

PS:以上轉換記得要NuGet套件 Newtonsoft.Json ( Json.NET )才可以用喔。

More From Forest Beat

冬の前田森林公園のフリ

在Linux中列出目錄的空間使用大小

列出檔案大小的指令是ls,但是這個指令列出的目錄大小是固定的,又不能自動加總,所以想要知道/home/下各個使用者用了多少檔案空間,那可以參考以下指令
技術
0
minutes
高層ビルのフリー写真素材

Windows 10中的小算盤不見了?

如題小算盤不見了怎麼辦?其實很簡單,搜尋商店,然後輸入關鍵字,安裝一下就可以~~~
技術
0
minutes
桜のフリ

Top 20 Best Programming Languages To Learn in 2024

IT小菜雞必需掌握一種以上的程式語言,因為程式語言是實現軟體解決方案的工具。
技術
0
minutes
サクラのフリ

快速了解MVC、MVP、MVVM、MVI架構的演進

MVC、MVP、MVVM、MVI 都是軟體架構模式,用來組織和管理程式碼,提高程式碼的可讀性、可維護性和可擴展性。
技術
0
minutes
spot_imgspot_img