[英]Translating SQL to C#: Select name in key-value pair with the highest value after applying a function to its value and filtering based on a condition?
[英]How to get key name and its value whereas its value in also in the pair of key value form from json in C#
我正在像这样的JObject格式获得响应。
JObject response = JObject.Parse(account);
{
"status": 1,
"msg": "1 out of 1 Transactions Fetched Successfully",
"transaction_details": {
"ae6df74457a7cbf62caf": {
"mihpayid": "403993715518647003",
"request_id": "",
"bank_ref_num": "201833147408756",
"amt": "88.00",
"transaction_amount": "88.00",
"txnid": "ae6df74457a7cbf62caf",
"additional_charges": "0.00",
"Settled_At": "0000-00-00 00:00:00"
}
}
}
现在,该值(“ ae6df74457a7cbf62caf”)的“ transaction_details”迅速更改了每个事务,因此,我如何获取该值,之后如何获取C#中的“ mihpayid”键值。
您需要创建一个类来表示要返回的JSON。 对象的transaction_details
部分可以表示为Dictionary
,例如:
class Account
{
public int Status { get; set; }
public string Msg { get; set; }
public Dictionary<string, TransactionDetails> transaction_details { get; set; }
}
class TransactionDetails
{
public string mihpayid { get; set; }
public string requestid { get; set; }
public string bank_ref_num { get; set; }
public string amt { get; set; }
public string transaction_amount { get; set; }
public string txnid { get; set; }
public string additional_charges { get; set; }
public string Settled_At { get; set; }
}
而且,而是采用JObject.Parse(...)
使用JsonConvert.DeserializeObject
到JSON转换成你的C#类:
var myData = JsonConvert.DeserializeObject<Account>(account);
现在,您可以使用myData
对象引用JSON的所有属性。
您可以遍历transaction_details
读取每个条目。
foreach(var item in myData.transaction_details)
{
var id = item.Key;
var transaction = item.Value;
var mihpayid = transaction.mihpayid;
}
for循环中变量的值是:
id
=每个交易的唯一ID,即“ ae6df74457a7cbf62caf”
transaction
=具有唯一交易中所有值的Transaction
对象
mihpayid
=唯一交易中的mihpayid,即“ 403993715518647003”
JObject response = JObject.Parse("{\r\n \"status\": 1,\r\n \"msg\": \"1 out of 1 Transactions Fetched Successfully\",\r\n \"transaction_details\": {\r\n \"ae6df74457a7cbf62caf\": {\r\n \"mihpayid\": \"403993715518647003\",\r\n \"request_id\": \"\",\r\n \"bank_ref_num\": \"201833147408756\",\r\n \"amt\": \"88.00\",\r\n \"transaction_amount\": \"88.00\",\r\n \"txnid\": \"ae6df74457a7cbf62caf\",\r\n \"additional_charges\": \"0.00\",\r\n \"Settled_At\": \"0000-00-00 00:00:00\"\r\n }\r\n }\r\n }");
JObject transaction = JObject.Parse(response["transaction_details"].ToString());
foreach(var token in transaction.Properties())
{
var rapidlyChangingId = token.Name;
Console.WriteLine("Rapidly Changing ID: " + rapidlyChangingId);
Console.WriteLine(transaction[rapidlyChangingId]);
}
输出:
Rapidly Changing ID: ae6df74457a7cbf62caf { "mihpayid": "403993715518647003", "request_id": "", "bank_ref_num": "201833147408756", "amt": "88.00", "transaction_amount": "88.00", "txnid": "ae6df74457a7cbf62caf", "additional_charges": "0.00", "Settled_At": "0000-00-00 00:00:00" }
您可以使用JObject并将其转换为C#对象。 这样的事情: 如何将JObject反序列化为.NET对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.