C# 无法访问子值Newtonsoft Json
我想解析下面的字符串,下面是我的代码,下面是我的字符串C# 无法访问子值Newtonsoft Json,c#,asp.net,json,asp.net-mvc,getjson,C#,Asp.net,Json,Asp.net Mvc,Getjson,我想解析下面的字符串,下面是我的代码,下面是我的字符串 string jsn = Convert.ToString( @"{ 'TaxProfile':{'id':258658,'IncomeTypeStatus':[{'IncomeType':'0001','StatusCodeDesc':'Ready For SAP','StatusCode':'RF
string jsn = Convert.ToString(
@"{
'TaxProfile':{'id':258658,'IncomeTypeStatus':[{'IncomeType':'0001','StatusCodeDesc':'Ready For SAP','StatusCode':'RFS','PayFromCountryCode':'IE'}],'ExpirationDate':null,'FormName':null},
'ErrorJSON':'[{\'TypeID\':\'Z_FI_MDG\',\'SeverityCode\':\'3\',\'Note\':\'\\\'An Electronic Fund Transactions (EFT) routing number is comprised of a three-digit financial institution number and a five-digit branch number, preceded by a \\\\\\\'leading zero\\\\\\\'. \\\\\\\\r\\\\\\\\n•YYY: Institution\'}]'
}"
);
JObject jo = JObject.Parse(jsn);
// dynamic jo = JObject.Parse(jsn);
TenantPayeeMessage apTenantMessage = null;
// JObject jo = o;
// var auditObject = jo.ToString();
JToken PartnerReferenceId;
string Payeeid, PayeeStatus, bpid = string.Empty;
JToken[] items = null;
JToken sectionStatus = null;
JToken TaxIncomType = null;
JToken[] bank = null;
var bankJson = new Dictionary<string, string>();
JToken ErrorJSONSeverityNote,
ErrorJSONSeverityCode,
ErrorJSONTypID,
BasicErrorJSON,
Basicbpid,
Basicstatus,
BasicId, CompliancebpErrorJSON,
Compliancebpid, Compliancestatus, ComplianceId, ErrorJSONpp,
bbpidpp, statuspp,
PaymentProfileId, FormName,
ExpirationDate,
PayFromCountryCode, StatusCode, StatusCodeDesc, IncomeType, TaxProfileId;
//Guid SyncIdentifier = Guid.Parse(jo["BusinessPartnerSUITEBulkReplicateConfirmation"]["BusinessPartnerSUITEReplicateConfirmationMessage"]["MessageHeader"]["UUID"].Value<string>());
if (null != jo["TaxProfile"]["id"] && null != jo["TaxProfile"]["id"])
{
TaxProfileId = jo["TaxProfile"]["id"].Value<string>();
}
TaxIncomType = jo["TaxProfile"]["id"]["IncomeTypeStatus"].Value<string>();
string jsn=Convert.ToString(
@"{
'TaxProfile':{'id':258658,'IncomeTypeStatus':[{'IncomeTypeStatus':'0001','StatusCodeDesc':'Ready For SAP','StatusCode':'RFS','PayFromCountryCode':'IE'}],'ExpirationDate':null,'FormName':null},
一个电子基金交易(EFT)的路由号码是由一个三位数字的金融机构数字和一个五位数字的分支机构数字组成的。一个电子基金交易(EFT)的路由号码是由一个三位数字的金融机构数字和一个五位数字的分支机构数字组成的一个路由号码是由一个三位数字的金融机构数字和一个五位数字的分支机构数字组成的,一个“Sever利编码”是“3\,“3\“3\”,“注意”注::““一个“一个电子基金交易(EFT)路由号码是一个电子基金交易(EFT)路由号码是一个电子基金交易(EFT)的路由号码。一个路由号码是由一个电子基金交易(EFT)路由号码(EFT)路由号码(EFT)路由号码是由一个电子基金交易(EFT)的一个电子基金交易(EFT)路由号码(EFT)路由号码(EFT)路由号码(EFT)路由号码(EFT\n•YYY:institution\'}]
}"
);
JObject jo=JObject.Parse(jsn);
//动态jo=JObject.Parse(jsn);
TenantPayeeMessage apTenantMessage=null;
//JObject jo=o;
//var auditObject=jo.ToString();
JToken PartnerReferenceId;
字符串payeId,payeStatus,bpid=string.Empty;
JToken[]项=null;
JToken sectionStatus=null;
JToken TaxIncomType=null;
JToken[]bank=null;
var bankJson=新字典();
JToken ErrorJSONSeverityNote,
ErrorJSONSeverityCode,
ErrorJSonTyped,
BasicErrorJSON,
基本的,
基本状态,
BasicId,符合BPerrorjson,
合规性BPID、合规性状态、合规性ID、错误JSONPP、,
bbpidpp,statuspp,
PaymentProfileId,FormName,
截止日期,
PayFromCountryCode、StatusCode、StatusCodeDesc、IncomeType、TaxProfileId;
//Guid SyncIdentifier=Guid.Parse(jo[“BusinessPartnerSUITEBulkReplicateConfirmation”][“BusinessPartnerSUITEReplicateConfirmationMessage”][“MessageHeader”][“UUID”].Value());
if(null!=jo[“TaxProfile”][“id”]&&null!=jo[“TaxProfile”][“id”])
{
TaxProfileId=jo[“TaxProfile”][“id”].Value();
}
TaxIncomType=jo[“TaxProfile”][“id”][“IncomeTypeStatus”]。Value();
在最后一行我得到了一个错误
无法访问Newtonsoft.Json.Linq.JValue上的子值。
我不确定哪里出错了我想解析上面的字符串您的代码看起来像(我已经删除了与异常无关的代码并格式化了JSON字符串):
返回258658。所以,如果您试图获取它的IncomeTypeStatus
属性,您将得到上面提到的异常。可能您需要从呼叫链中删除id
jo["TaxProfile"]["IncomeTypeStatus"]
您的代码如下所示(我删除了与异常无关的代码并格式化了JSON字符串):
返回258658。所以,如果您试图获取它的IncomeTypeStatus
属性,您将得到上面提到的异常。可能您需要从呼叫链中删除id
jo["TaxProfile"]["IncomeTypeStatus"]
您是否可以计划使用强类型类来反序列化Json数据,这将更加简单事实上,获取Json字符串,复制它,转到visual studio并执行编辑->粘贴特殊->粘贴Json作为类您可以计划使用强类型类来反序列化Json数据,这将更加简单事实上,获取json字符串,复制它,转到visual studio并执行编辑->粘贴特殊->粘贴json作为类
jo["TaxProfile"]["IncomeTypeStatus"]