3

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

如果我有:

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'

谢谢!

4

1 回答 1

6

json.loads(s)通过创建一些特定类型(例如 JSONNode)并填充它,可以使类似的工作正常工作。

但是现在我们可以在你的例子中得到一些东西来工作:

 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值的记录。

于 2017-08-10T15:08:39.210 回答