GameEntity.fromJSON()
方法用于将保存为 JSON 格式的实体数据解析为 GameEntity
对象。该方法是 GameEntity
类的静态方法,可以直接通过该类进行调用。
GameEntity.fromJSON(jsonData: string) : GameEntity
jsonData
:字符串类型,实体数据的 JSON 格式字符串。GameEntity
类型的对象。Error
类型的异常。// 定义实体类 Hero
class Hero extends GameEntity {
constructor(name, hp, attack) {
super();
this.name = name;
this.hp = hp;
this.attack = attack;
}
// 实现 fromJSON 静态方法
static fromJSON(jsonData) {
const {name, hp, attack} = JSON.parse(jsonData);
return new Hero(name, hp, attack);
}
}
// 测试 fromJSON 方法
const heroJson = '{"name":"张三","hp":100,"attack":20}';
const hero = Hero.fromJSON(heroJson);
console.log(hero.name); // 输出 "张三"
console.log(hero.hp); // 输出 100
console.log(hero.attack); // 输出 20
如果解析失败,fromJSON()
方法将抛出一个 Error
类型的异常,异常对象包含以下属性:
name
:字符串类型,表示异常名称,值为 "JsonParseError"
。message
:字符串类型,表示异常信息,值为 JSON 解析失败的具体信息。示例代码:
try {
const heroJson = '{name":"张三","hp":100,"attack":20}';
const hero = GameEntity.fromJSON(heroJson);
} catch(err) {
console.log(`${err.name}: ${err.message}`);
}
// 输出:JsonParseError: Unexpected token 'name' in JSON at position 1
fromJSON()
方法仅用于解析实体数据的 JSON 格式字符串,不涉及其他逻辑,因此不需要实现在 GameEntity
类中。fromJSON()
方法时,可以使用 JSON.parse()
方法解析 JSON 格式字符串,并返回一个新的实体对象。