簡體   English   中英

將Json傳遞到Web服務

[英]Passing Json to the Web Service

我正在嘗試將json數據推送到Web服務;

這是我的樣本數據;

    {
       "data" : {
       "username" : "demo",
       "password" : "demo1082*098/*42a", 
       "LoginToken" :     "AAFF540EC55DASEFBE7E3D8404AED31F6DD30CA2BFCE2433B9475E696GG38730"
       }
    }

這是我的網絡服務;

public string Post([FromBody]string data)
List<Login> datas = JsonConvert.DeserializeObject<List<Login>>(data);

錯誤; Newtonsoft.Json.dll中發生類型為'System.ArgumentNullException'的異常,但未在用戶代碼中處理

數據顯示為NULL

我正在使用WebAPI,restful api,C#,visual std 2015

提前致謝。

編輯;

我正在使用DHC chrome擴展來發布數據。 標題; 內容類型:application / json BODY;

{
           "data" : {
           "username" : "demo",
           "password" : "demo1082*098/*42a", 
           "LoginToken" :     "AAFF540EC55DASEFBE7E3D8404AED31F6DD30CA2BFCE2433B9475E696GG38730"
           }
        }

錯誤;

500內部服務器錯誤

編輯; 我發現錯誤是因為“字符串”類型的數據。 當我將其更改為“動態”時,我解決了該問題。 有人可以推薦我一個關鍵字而不是動態的嗎?

1)您必須創建一個類

public class LoginData
{
    public string username {get;set;}
    public string password {get;set;}
    public string LoginToken {get;set;}
}

並在您的網絡服務中使用如下

public string Post([FromBody]LoginData data)

2)我看到以下行您已經創建了一個類名Login (如果您在json中有一條記錄)

Login datas = JsonConvert.DeserializeObject<Login>(data);

所以你也可以使用

public string Post([FromBody]Login data)

執行此操作的一種方法如下:

創建您的要求的課程

    public class Data
{
    public string username { get; set; }
    public string password { get; set; }
    public string LoginToken { get; set; }
}

public class RootObject
{
    public Data data { get; set; }
}

和你的帖子方法

public string Post([FromBody]RootObject data)

現在,您甚至不必反序列化它。 並可以作為類的屬性直接訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM