首页 > 解决方案 > 在 TOIT 语言上对 JSON 对象进行序列化/反序列化

问题描述

我有几个关于使用 json 的问题。可以看到附件库 l ib_v1.0.2中有对应的模块,但是示例中没有用到。是否可以给出两个简单的示例:将对象序列化为 json 字符串并将json反序列化为同一对象:例如通过constructor.json jsonString创建对象。如果可能,除了序列化/反序列化普通字段:字符串、int、bool之外,解释如何序列化/反序列化和散列映射列表(如果对象包含它们)。

在此先感谢, MK

标签: jsontoit

解决方案


目前,JSON 库仅支持硬编码的类型列表:

  encode obj:
    if obj is string: encode_string_ obj
    else if obj is num: encode_number_ obj
    else if identical obj true: encode_true_
    else if identical obj false: encode_false_
    else if identical obj null: encode_null_
    else if obj is Map: encode_map_ obj
    else if obj is List: encode_list_ obj
    else: throw "INVALID_JSON_OBJECT"

这意味着它不能序列化/反序列化其他(用户定义的)类型的对象。

我在这里提交了一个功能请求:https ://github.com/toitware/public/issues/6


推荐阅读