C# 在C中获取JSON POST数据#

C# 在C中获取JSON POST数据#,c#,asp.net,json,forms,post,C#,Asp.net,Json,Forms,Post,我是C#的新手。 如何获取JSON POST数据? 我有一个将JSON数据发布到asp.net的服务 数据如下: { "transaction_time": "2017-09-18 09:47:54", "transaction_status": "capture", "transaction_id": "b7c8cfa9-b706-4a9d-b70d-8d70149145bd", "status_message": "Veritrans payment notifica

我是C#的新手。
如何获取JSON POST数据? 我有一个将JSON数据发布到asp.net的服务

数据如下:

{
   "transaction_time": "2017-09-18 09:47:54",
   "transaction_status": "capture",
   "transaction_id": "b7c8cfa9-b706-4a9d-b70d-8d70149145bd",
   "status_message": "Veritrans payment notification",
   "status_code": "200",
   "signature_key": "b22b5740bf2c587ba949ae5343757a66e5a75c45b9377b9ee891909bbd8977bb2caea8e0549bf09b5040b22f54efc76aa8beb31e321f9d600f267b23f37b30ae",
   "payment_type": "credit_card",
   "order_id": "LUHUMMLWOT",
   "masked_card": "401111-1112",
   "gross_amount": "326000.00",
   "fraud_status": "accept",
   "bank": "mandiri",
   "approval_code": "1505702878234"
 }
据我所知,我可以使用WebMethod捕获所有数据,创建一个方法,然后初始化每个JSON对象的参数,但每次发布时,它们都会发送不同的JSON。所以我必须获取所有JSON并将其动态解析为变量

请帮忙:)

谢谢~

使用C#


如果您不知道json将会是什么,那么必须在动态对象中解析json

可以像这样使用动态对象

dynamic data = Json.Decode(json);
string transaction_time=data.transaction_time;
在你的情况下,你可以得到这样的数据

dynamic data = Json.Decode(json);
string transaction_time=data.transaction_time;

您也可以使用object而不是dynamic,然后使用reflection来获取json对象中的所有属性,我可以给您提供通用代码示例,您可以搜索reflection以获得更多理解

public void GetData(object obj)
{
    foreach(var item in obj.GetType().GetProperties())
    {
         Console.WriteLine(item.Name + ":\t" + item.GetValue(obj));
    }
} 
你可以随心所欲地使用它

   **Pleas do it step by step as below
    in Your Asp.net Java script using**



var yourPostJsonObject={
   "transaction_time": "2017-09-18 09:47:54",
   "transaction_status": "capture",
   "transaction_id": "b7c8cfa9-b706-4a9d-b70d-8d70149145bd",
   "status_message": "Veritrans payment notification",
   "status_code": "200",
   "signature_key": "b22b5740bf2c587ba949ae5343757a66e5a75c45b9377b9ee891909bbd8977bb2caea8e0549bf09b5040b22f54efc76aa8beb31e321f9d600f267b23f37b30ae",
   "payment_type": "credit_card",
   "order_id": "LUHUMMLWOT",
   "masked_card": "401111-1112",
   "gross_amount": "326000.00",
   "fraud_status": "accept",
   "bank": "mandiri",
   "approval_code": "1505702878234"
 }


$.ajax({
                type: 'POST',
                dataType: 'json',
                cache: false,
                url: 'SendTransaction', // webmethod or web serivces URL
                data: {jsonReceiverInCsharpObjecName:JSON.stringify(yourPostJsonObject)},
                success: function (response) {
                   alert('scucess')
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert('Error - ' + errorThrown);
                }
            });
在Asp.net代码隐藏或Web服务中

using Newtonsoft.Json;
using System.Dynamic;
using Newtonsoft.Json.Converters;

public bool SendTransaction(string jsonReceiverInCsharpObjecName)
 {
   dynamic dynData =JsonConvert.DeserializeObject<ExpandoObject>
   (jsonReceiverInCsharpObjecName, new ExpandoObjectConverter());

foreach (KeyValuePair<string, object> transItem in dynData 
{
   if (transItem.Key == "transaction_time")
   var transaction_time = Convert.ToString(transItem.Value);
   else if (transItem.Key == "transaction_status")
   var transaction_status = Convert.ToString(transItem.Value);
   else if (transItem.Key == "transaction_id")
   var transaction_ido = Convert.ToString(transItem.Value);
   //else
   //do for rest attribute of your json data
 }

return true;
 }
使用Newtonsoft.Json;
运用系统动力学;
使用Newtonsoft.Json.Converters;
公共bool SendTransaction(字符串jsonReceiverInCsharpObjecName)
{
动态dynData=JsonConvert.DeserializeObject
(JsonReceiveIncSharpObjeCName,新的ExpandObjectConverter());
foreach(Dynda中的KeyValuePair transItem
{
if(transItem.Key==“事务时间”)
var事务处理时间=Convert.ToString(transItem.Value);
else if(transItem.Key==“事务状态”)
var交易\ U状态=Convert.ToString(transItem.Value);
else if(transItem.Key==“事务id”)
var transaction_ido=Convert.ToString(transItem.Value);
//否则
//json数据的do for rest属性
}
返回true;
}

您的意思是如何在C#code函数中获取JSON POST数据吗?您是否尝试过
JsonConvert.DeserializeObject(您的JSON)
你需要在你的代码中包含
使用Newtonsoft.Json;
语句。是的@souvik,我不知道如何在asp.net的代码中获取Json POST数据。请检查这些链接。它有逐步的详细信息。那么,到目前为止你做了什么?不,我的意思是,如何获取Json POST数据,而不是将Json数据发布到C?C代码没有意义nse,您在哪里从请求中提取json数据?