我想從 JSON 中獲取狀態和未映射狀態,如下面所附代碼中所標記。我試過了,但我做不到。任何幫助都是可觀的。謝謝你。
請在此處找到附加的代碼
請找到如下所示的錯誤代碼:
string responseString = "";
Dictionary<string, object> input = new Dictionary<string, object>();
string MerchantKey = ConfigurationManager.AppSettings["MERCHANT_KEY"];
string SALT = ConfigurationManager.AppSettings["SALT"];
string MerchantId = MerchantTransactionId;
input.Add("key", MerchantKey.ToString());
input.Add("command", "verify_payment");
input.Add("var1", MerchantId.ToString());
input.Add("hash", GenerateHash(MerchantTransactionId));
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://info.payu.in/merchant/postservice.php?form=2");
string postData = "key=" MerchantKey.ToString() "&command=verify_payment&var1=" MerchantId.ToString() "&hash=" GenerateHash(MerchantId);
//string postData = "key=Tn1kDH&command=verify_payment&var1=200700001&hash=" GenerateHash();
var data1 = Encoding.ASCII.GetBytes(postData);
request.ContentLength = data1.Length;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var stream = request.GetRequestStream())
{
stream.Write(data1, 0, data1.Length);
}
HttpWebResponse orderResponse = (HttpWebResponse)request.GetResponse();
orderData = ParseResponse(orderResponse);
JObject RequestBodyData = JObject.Parse((string)orderData.SelectToken("transaction_details"));
還在這里找到主要錯誤
在這里找到回復
uj5u.com熱心網友回復:
Newtonsoft.Json中的JToken.SelectToken方法回傳JToken物件。僅當此 JToken 物件表示的值是原始型別(例如字串或數字)時,才可以使用顯式轉換運算子將 JToken 物件轉換為字串。
在所描述的場景中,JToken 物件代表整個“transaction_details”JSON 物件。結果,顯式轉換為字串會回傳相應的“無法將物件轉換為字串”。例外。
如果確實需要獲取“transaction_details”JSON 物件的字串表示,那么正如評論中提到的,可以使用JToken.ToString方法。
JToken.ToString 方法
回傳此令牌的縮進 JSON。
但如果真正的任務是獲取“status”和“unmappedstatus”欄位的值,那么可以直接從現有的 JToken 物件中查詢這些值。
var status = (string)orderData.SelectToken("transaction_details.status");
var unmappedstatus = (string)orderData.SelectToken("transaction_details.unmappedstatus");
要么
var transactionDetails = orderData.SelectToken("transaction_details");
var status = (string)transactionDetails.SelectToken("status");
var unmappedstatus = (string)transactionDetails.SelectToken("unmappedstatus");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431514.html
標籤:网 json 。网 asp.net-mvc json.net
