gpt4 book ai didi

c# - 从 JSON 加载多个 'nodes' 并存储到数组中

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:46 24 4
gpt4 key购买 nike

我目前正在创建一个基于文本的小型游戏。这里显然有多个房间,我希望从 JSON 文件加载这些房间。我目前正在这样做:

        dynamic jRooms = Json.Decode(file);
for (int i = 0; i < Regex.Matches( file, "Room" ).Count; i++){
name[i] = jRooms.Game.Room[i];
description[i] = jRooms.Game.Room.Attributes.Description[i];
exits[i] = jRooms.Game.Room.Attributes.Exits[i];
_count++;
}

从以下 JSON 文件加载信息:

{
'Game': [{
'Room': 'Vault 111 Freeze Chamber',
'Attributes': {
'Description': 'The freeze chamber of the vault you entered after the nuclear fallout.',
'Exits': 'North.Vault 111: Main Hallway'
},
'Room': 'Vault 111 Main Hallway',
'Attributes': {
'Description': 'The main hallway of the vault.',
'Exits': 'South.Vault 111: Freeze Chamber'
}
}]}

不幸的是,这在运行时抛出了一个我似乎无法解决的错误,错误如下:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference at CallSite.Target(Closure , CallSite , Object , Int32 ) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) at TBA.Loader.Rooms() at TBA.Program.Main(String[] args)

任何帮助将不胜感激,因为我完全不知道什么是错误的和不起作用的。如果您需要我的代码,只需请求它。

谢谢。

最佳答案

问题出在您的 JSON 上。 JSON 不允许单引号(可能它们有不同的含义或根本没有含义)。来源 - W3Schools.

使用 JSONLint 等服务来验证 JSON 并检查错误。甚至 JSONLint 也会声明您的 JSON 无效。然而,使用双引号,它被声明为有效。你应该像这样使用双引号:

{
"Game": [
{
"Room": "Vault111FreezeChamber",
"Attributes": {
"Description": "Thefreezechamberofthevaultyouenteredafterthenuclearfallout.",
"Exits": "North.Vault111: MainHallway"
},
"Room": "Vault111MainHallway",
"Attributes": {
"Description": "Themainhallwayofthevault.",
"Exits": "South.Vault111: FreezeChamber"
}
}
]
}

关于c# - 从 JSON 加载多个 'nodes' 并存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33938280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com