我使用JSON需要幫助訪問一個JSON對象,如果沒有它的名字C#
{"bloxwich": { "id": 44068310, "name": "Bloxwich", "profileIconId": 663, "revisionDate": 1412456785000, "summonerLevel": 30 }}
但是bloxwich會根據用戶輸入改變。
這是代碼,我可以用它來接取該ID只爲bloxwich
string result = getResponse("https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/" + summonerName + "?api_key=" + key);
dynamic resultData = JsonConvert.DeserializeObject(result);
Console.WriteLine(resultData.bloxwich.id);
,但我想弄清楚如何我可以接取的bloxwich部分每次,即使名稱會有所不同。
我試圖用一個for循環這樣
foreach (var item in resultData)
{
Console.WriteLine("Item: " + item[0].id);
}
,但我得到了以下錯誤:
System.InvalidOperationException was unhandled
HResult=-2146233079
Message=Cannot access child value on Newtonsoft.Json.Linq.JProperty.
Source=Newtonsoft.Json
StackTrace:
at Newtonsoft.Json.Linq.JToken.get_Item(Object key)
at CallSite.Target(Closure , CallSite , Object , Int32)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at ConsoleApplication1.Api.getSummonerID(String summonerName) in C:\Users\Admin\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Api.cs:line 147
at ConsoleApplication1.Program.Main(String[] args) in C:\Users\Admin\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 22
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: