[英]Read and Parse JSON data from POST request in C#
我正在通過JQuery的Ajax做一個POST請求,數據類型定義為json
,包含要發布到服務器的值,比如Username: "Ali"
。
我需要在Handler中做的是讀取值,將它們反序列化為名為User
的對象。
String data = new System.IO.StreamReader(context.Request.InputStream).ReadToEnd();
User user = JsonConvert.DeserializeObject<User>(data);
在調試時, data
的值如下:
Username=Ali&Age=2....
現在我確定這不是JSON
,所以下一行肯定會產生錯誤:
"Unexpected character encountered while parsing value: U. Path '', line 0, position 0."
從POST請求中讀取JSON
數據的正確方法是什么?
客戶端
$.ajax({
type: 'POST',
url: "http://localhost:38504/DeviceService.ashx",
dataType: 'json',
data: {
Username: 'Ali',
Age: 2,
Email: 'test'
},
success: function (data) {
},
error: function (error) {
}
});
將您的對象轉換為json字符串:
$.ajax({
type: 'POST',
url: "http://localhost:38504/DeviceService.ashx",
dataType: 'json',
data: JSON.stringify({
Username: 'Ali',
Age: 2,
Email: 'test'
}),
success: function (data) {
},
error: function (error) {
}
});
我不確定為什么你的數據字符串被編碼為url(看起來像)。
但這可能會解決問題(盡管我不確定)
String data = new System.IO.StreamReader(context.Request.InputStream).ReadToEnd();
String fixedData = HttpServerUtility.UrlDecode(data);
User user = JsonConvert.DeserializeObject<User>(fixedData);
在C#文件中使用此...將為您提供所需的結果...
string username=Request.Form["Username"].ToString();
同樣對於其他人......我希望這會對你有所幫助
另一個答案或者您可以發送這樣的數據
$.ajax({
url: '../Ajax/Ajax_MasterManagement_Girdle.aspx',
data: "Age=5&id=2"
type: 'POST',
success: function (data) {
}
});
在c#中得到這樣的答案
string Age=Request.Form["Age"].ToString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.