如何从 JSON 填充 Chapel class 对象?
How to populate a Chapel class object from a JSON?
在 Python 中,我可以很容易地从 JSON 创建对象。我可以填充 类 或只创建一个通用对象。我看到 Chapel 有一个用于 JSON 的 read
方法,但我不确定如何使用它。
如果我有:
class Fighter {
var subclass:string;
var level:int;
}
和一个字符串:
s = "{'subclass':'Ninja', 'level':7}"
如何获得 Fighter
对象?
有没有像这样的方法:
n = json.loads(s)
n['subclass'] # = 'ninja', but just as a field key
或:
Hattori = Fighter.read(s);
Hattori['subclass'] # = 'ninja'
谢谢!
通过创建某种特定类型(例如 JSONNode)并填充它,可以使类似 json.loads(s)
的东西工作。
但是现在我们可以让您的示例中的某些东西起作用:
class Fighter {
var subclass:string;
var level:int;
}
var mem = openmem();
var writer = mem.writer().write('{"subclass":"ninja", "level":7}');
var reader = mem.reader();
var f = new Fighter();
reader.readf("%jt", f);
writeln(f);
请注意,class 实例当前必须在您读取它之前分配。或者您可以使用没有 nil
值的记录。
在 Python 中,我可以很容易地从 JSON 创建对象。我可以填充 类 或只创建一个通用对象。我看到 Chapel 有一个用于 JSON 的 read
方法,但我不确定如何使用它。
如果我有:
class Fighter {
var subclass:string;
var level:int;
}
和一个字符串:
s = "{'subclass':'Ninja', 'level':7}"
如何获得 Fighter
对象?
有没有像这样的方法:
n = json.loads(s)
n['subclass'] # = 'ninja', but just as a field key
或:
Hattori = Fighter.read(s);
Hattori['subclass'] # = 'ninja'
谢谢!
通过创建某种特定类型(例如 JSONNode)并填充它,可以使类似 json.loads(s)
的东西工作。
但是现在我们可以让您的示例中的某些东西起作用:
class Fighter {
var subclass:string;
var level:int;
}
var mem = openmem();
var writer = mem.writer().write('{"subclass":"ninja", "level":7}');
var reader = mem.reader();
var f = new Fighter();
reader.readf("%jt", f);
writeln(f);
请注意,class 实例当前必须在您读取它之前分配。或者您可以使用没有 nil
值的记录。