You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity开发库存系统时遇KeyNotFoundException及Json解析错误求助

解决Unity库存系统的KeyNotFoundException与JsonException问题

嘿,看了你的代码和错误信息,问题根源很明确——你的Items.json文件存在语法错误,导致LitJson无法正确解析JSON结构,进而抛出了那些异常。

具体错误点

在你的JSON里,每个stats字段后面都缺少了冒号:,这是JSON键值对必须的分隔符。比如原JSON里的:

"stats" {
  "power": 1,
  "defence": 0,
  "vitality": 0
}

这不符合JSON语法规范,正确的写法应该是"stats": { ... }。

修正后的Items.json代码

把两个条目里的stats部分都加上冒号,修正后的完整JSON如下:

[
  {
    "id": 0,
    "title": "Wood Pickaxe",
    "value": 6,
    "stats": {
      "power": 1,
      "defence": 0,
      "vitality": 0
    },
    "description": "A basic wood pickaxe.",
    "stackable": false,
    "rarity": 1,
    "slug": "wood_pickaxe"
  },
  {
    "id": 1,
    "title": "Wood Pickaxe Head",
    "value": 543,
    "stats": {
      "power": 1,
      "defence": 0,
      "vitality": 0
    },
    "description": "A piece of a broken wood pickaxe.",
    "stackable": false,
    "rarity": 1,
    "slug": "wood_pickaxe_head"
  }
]

为什么这个错误会引发那些异常?

当LitJson尝试解析错误的JSON时,它无法识别stats后面的{是合法的结构开始,解析流程被打断,进而导致后续读取itemData[i]["stats"]["power"]这类字段时,找不到对应的键(因为解析出来的结构根本不是预期的嵌套字典),所以抛出了KeyNotFoundException。而错误信息里的JsonException: Invalid token '123' in input string也是因为JSON语法错误,解析器无法正确处理后续的内容。

额外小建议

以后遇到JSON解析相关的错误,第一步可以先检查JSON格式是否合法——你可以用一些在线JSON校验工具来快速定位语法问题,这比盯着代码找要高效得多。

内容的提问来源于stack exchange,提问作者Godfilms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:07:32