代码之家  ›  专栏  ›  技术社区  ›  Brian Dolan

如何从JSON填充Chapel类对象?

  •  3
  • Brian Dolan  · 技术社区  · 7 年前

    在Python中,我可以很容易地从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'
    

    1 回复  |  直到 7 年前
        1
  •  6
  •   mppf    7 年前

    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 价值