生成Model时触发RangeError (end): Invalid value: Only valid value is 0: 1错误的求助
解决
get generate model命令的RangeError问题 问题分析
你遇到的RangeError (end): Invalid value: Only valid value is 0: 1错误,大概率是JSON里的动态键数组结构导致模型生成工具的解析器在计算字段索引时出错了。
看你提供的JSON内容,像positions_ar、positions_en、basic_skills_ar、basic_skills_en这些字段都是数组,而数组里的每个元素是一个仅包含动态键的对象(比如[{"مدافع": 3}])。这种不稳定的结构会让解析工具无法准确推断字段的固定类型,进而引发索引计算的范围错误。
解决步骤
步骤1:调整JSON为固定键格式
把动态键的对象改成包含固定键的结构,让解析工具能明确识别字段类型。例如:// 原结构 "positions_ar": [{"مدافع": 3}], // 修改后结构 "positions_ar": [{"position_name": "مدافع", "skill_rating": 3}],对所有类似字段做同样修改,比如
basic_skills_ar可以调整为:"basic_skills_ar": [ {"skill_name": "السرعة", "skill_rating": 4}, {"skill_name": "تمرير الكرة", "skill_rating": 3}, {"skill_name": "تسديد", "skill_rating": 2} ]步骤2:重新执行生成命令
修改完JSON后,再次运行get generate model命令,基于调整后的assets/models/to_get/match_details.json文件生成模型,应该就能避免这个RangeError。步骤3:若需保留原结构的处理方式
如果你必须保留原有的动态键结构,那么需要:- 查阅你使用的模型生成工具的官方文档,确认是否有配置项支持解析动态键数组;
- 如果工具没有相关支持,可能需要手动编写对应部分的模型代码,补充自定义解析逻辑。
验证修改后的JSON片段示例
"players": [ { "id": 47, "is_cap": false, "average_skill": 3, "region": { "id": 13, "name_ar": "التجمع الخامس", "name_en": "Fifth Settlement", "state": { "id": 8, "name_ar": "القاهره", "name_en": "Cairo" } }, "first_name": "Ezz El Din", "last_name": "Karim", "mobile": "01113481110", "email": null, "image": null, "positions_ar": [{"position_name": "مدافع", "skill_rating": 3}], "positions_en": [{"position_name": "CB", "skill_rating": 3}], "basic_skills_ar": [ {"skill_name": "السرعة", "skill_rating": 4}, {"skill_name": "تمرير الكرة", "skill_rating": 3}, {"skill_name": "تسديد", "skill_rating": 2} ], "basic_skills_en": [ {"skill_name": "speeding", "skill_rating": 4}, {"skill_name": "Passing", "skill_rating": 3}, {"skill_name": "shooting", "skill_rating": 2} ] } ]
内容的提问来源于stack exchange,提问作者Ahmed Wagdi
相关产品推荐
相关产品推荐

