C# 如何将JSON转换为具有更改键的对象
在我的C# 如何将JSON转换为具有更改键的对象,c#,json,json.net,C#,Json,Json.net,在我的JSON中,键不是常量。我正在从App_Data读取文件,我试图做的是使用API调用将IFSC匹配的银行返回给用户 "Result": { "AKJB0000001": { "BANK": "AKOLA JANATA COMMERCIAL COOPERATIVE BANK", "IFSC": "AKJB0000001", "BRANCH": "RTGS-HO", "ADDRESS": "JANVAIBHAV,OLD
JSON
中,键不是常量。我正在从App_Data
读取文件,我试图做的是使用API调用将IFSC
匹配的银行返回给用户
"Result":
{
"AKJB0000001": {
"BANK": "AKOLA JANATA COMMERCIAL COOPERATIVE BANK",
"IFSC": "AKJB0000001",
"BRANCH": "RTGS-HO",
"ADDRESS": "JANVAIBHAV,OLD COTTON MARKET,AKOLA,PIN 444001",
"CONTACT": null,
"CITY": "AKOLA",
"DISTRICT": "AKOLA",
"STATE": "MAHARASHTRA"
},
"AKJB0000002": {
"BANK": "AKOLA JANATA COMMERCIAL COOPERATIVE BANK",
"IFSC": "AKJB0000002",
"BRANCH": "MALEGAON",
"ADDRESS": "JANVAIBHAV, MAIN ROAD, MALEGAON PIN 444 503",
"CONTACT": "271252",
"CITY": "MALEGAON",
"DISTRICT": "WASHIM",
"STATE": "MAHARASHTRA"
}
}
公共异步任务GetBankName(字符串IFSCCode)
{
//这是我的密码
}
字符串IFSCCodeFile=System.Web.HttpContext.Current.Server.MapPath(“~/App_Data/ifsc-codes/”+ifsc+.json”);
JObject-IFSCCodes=JObject.Parse(File.ReadAllText(IFSCCodeFile));
BankDetails BankList=JsonConvert.DeserializeObject(IFSCCodes.ToString());
但是
银行列表
返回空值。您可以从字典获得帮助
public async Task<IHttpActionResult> GetBankName(string IFSCCode)
{
// here my code goes
}
string IFSCCodeFile = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/ifsc-codes/" + IFSC + ".json");
JObject IFSCCodes = JObject.Parse(File.ReadAllText(IFSCCodeFile));
BankDetails BankList = JsonConvert.DeserializeObject<BankDetails>(IFSCCodes.ToString());
JsonConvert.DeserializeObject您可以从字典中获得帮助
public async Task<IHttpActionResult> GetBankName(string IFSCCode)
{
// here my code goes
}
string IFSCCodeFile = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/ifsc-codes/" + IFSC + ".json");
JObject IFSCCodes = JObject.Parse(File.ReadAllText(IFSCCodeFile));
BankDetails BankList = JsonConvert.DeserializeObject<BankDetails>(IFSCCodes.ToString());
JsonConvert.DeserializeObject您可以使用下面的类结构来反序列化json
JsonConvert.DeserializeObject<ResultParser>(yourInput)ş
class-Rooot
{
公共字典结果{get;set;}
}
公共类银行详情
{
公共字符串库{get;set;}
公共字符串IFSC{get;set;}
公共字符串分支{get;set;}
公共字符串地址{get;set;}
公共对象联系人{get;set;}
公共字符串CITY{get;set;}
公共字符串区域{get;set;}
公共字符串状态{get;set;}
}
用法:
class Rooot
{
public Dictionary<string, BankDetail> Result { get; set; }
}
public class BankDetail
{
public string BANK { get; set; }
public string IFSC { get; set; }
public string BRANCH { get; set; }
public string ADDRESS { get; set; }
public object CONTACT { get; set; }
public string CITY { get; set; }
public string DISTRICT { get; set; }
public string STATE { get; set; }
}
string json=File.ReadAllText(IFSCCodeFile);
Rooot Rooot=JsonConvert.DeserializeObject(json);
foreach(rooot.Result中的变量项)
{
控制台。写入线(项。键);
Console.WriteLine(item.Value.BANK??“空”);
Console.WriteLine(item.Value.IFSC??“NULL”);
Console.WriteLine(item.Value.BRANCH??“NULL”);
Console.WriteLine(item.Value.ADDRESS??“NULL”);
Console.WriteLine(item.Value.CONTACT??“NULL”);
Console.WriteLine(item.Value.CITY??“NULL”);
Console.WriteLine(item.Value.DISTRICT??“NULL”);
Console.WriteLine(item.Value.STATE??“NULL”);
Console.WriteLine();
}
Console.ReadLine();
输出:
class Rooot
{
public Dictionary<string, BankDetail> Result { get; set; }
}
public class BankDetail
{
public string BANK { get; set; }
public string IFSC { get; set; }
public string BRANCH { get; set; }
public string ADDRESS { get; set; }
public object CONTACT { get; set; }
public string CITY { get; set; }
public string DISTRICT { get; set; }
public string STATE { get; set; }
}
您可以使用下面的类结构来反序列化json
JsonConvert.DeserializeObject<ResultParser>(yourInput)ş
class-Rooot
{
公共字典结果{get;set;}
}
公共类银行详情
{
公共字符串库{get;set;}
公共字符串IFSC{get;set;}
公共字符串分支{get;set;}
公共字符串地址{get;set;}
公共对象联系人{get;set;}
公共字符串CITY{get;set;}
公共字符串区域{get;set;}
公共字符串状态{get;set;}
}
用法:
class Rooot
{
public Dictionary<string, BankDetail> Result { get; set; }
}
public class BankDetail
{
public string BANK { get; set; }
public string IFSC { get; set; }
public string BRANCH { get; set; }
public string ADDRESS { get; set; }
public object CONTACT { get; set; }
public string CITY { get; set; }
public string DISTRICT { get; set; }
public string STATE { get; set; }
}
string json=File.ReadAllText(IFSCCodeFile);
Rooot Rooot=JsonConvert.DeserializeObject(json);
foreach(rooot.Result中的变量项)
{
控制台。写入线(项。键);
Console.WriteLine(item.Value.BANK??“空”);
Console.WriteLine(item.Value.IFSC??“NULL”);
Console.WriteLine(item.Value.BRANCH??“NULL”);
Console.WriteLine(item.Value.ADDRESS??“NULL”);
Console.WriteLine(item.Value.CONTACT??“NULL”);
Console.WriteLine(item.Value.CITY??“NULL”);
Console.WriteLine(item.Value.DISTRICT??“NULL”);
Console.WriteLine(item.Value.STATE??“NULL”);
Console.WriteLine();
}
Console.ReadLine();
输出:
class Rooot
{
public Dictionary<string, BankDetail> Result { get; set; }
}
public class BankDetail
{
public string BANK { get; set; }
public string IFSC { get; set; }
public string BRANCH { get; set; }
public string ADDRESS { get; set; }
public object CONTACT { get; set; }
public string CITY { get; set; }
public string DISTRICT { get; set; }
public string STATE { get; set; }
}
请显示您的银行详细信息
模型?在您的银行详细信息
中声明结果
为字典
,如或所示。请显示您的银行详细信息
模型?在银行详细信息
中声明结果
为字典
,如或所示或或。此答案被接受。很高兴听到,请在答案左侧打勾,使其变为绿色:)此答案被接受。很高兴听到,请在答案左侧打勾,使其变为绿色:)