Nim示例 - 将JSON转换为对象/将对象转换为JSON

197 阅读1分钟

本教程展示了NIM对象和JSON字符串对象转换的示例。

  • $$:将Nim对象序列化为JSOn字符串。
  • to:将JSON字符串反序列化为Nim对象

如何将Nim对象转换为JSOn

Nim有一个 marshal 模块,其中包含序列化和反序列化数据从NIM对象的过程。$$用于将Nim对象转换为JSOn字符串。

这里是一个例子

  • 创建员工对象
  • 变量通过使用构造函数添加数据创建
  • $$变量返回JSOn字符串
import std/marshal

type
  Employee = object
    id: int
    name: string

var emp = Employee(id: 1, name: "john")

echo($$emp)

echo(typeOf($$emp))

输出:

{"id": 1, "name": "john"}

如何将JSON字符串转换为Nim对象

JSON字符串使用三引号语法的字符串字面量声明。 三引号用于声明字符串的长形式。

marshal模块包括一个to过程,将字符串转换为Nim对象。

这里是一个例子

import std/marshal


type
  Employee = object
    id: int
    name: string

var emp = Employee(id: 1, name: "john")
let jsonString = """{"id": 1, "name": "eric"}"""
let nimObject = jsonString.to[:Employee]

echo(nimObject)
echo(typeOf(nimObject))

输出:

(id: 1, name: "eric")
Employee