如何从JSON填充Chapel类对象?

时间:2017-08-10 15:03:55

标签: json chapel

在Python中,我可以很容易地从JSON创建对象。我可以填充类或只创建一个通用对象。我看到Chapel有一个read方法用于JSON,但我不确定如何使用它。

如果我有:

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'

谢谢!

1 个答案:

答案 0 :(得分:6)

通过创建某种特定类型(例如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);

请注意,在您阅读之前,必须先分配类实例。或者您可以使用记录,其中没有nil值。