D语言新手问题 DLang Json 和对象绑定和互相转换

· Created · Last modified by Brian replied at · 405 times read

D语言本身有很多序列化的库,但是我还是用 hunt 最顺手。

首先定义两个相互对应的结构,一个是 json 的,另一个是 class。

Json 结构:

{
    "id": 1,
    "name": "zoujiaqing",
    "status": 1
}

Class 结构:

package User;

class User
{
    int id;

    string name;

    short status;
}

将 Class 对象转成 json 字符串

import User;  
  
import hunt.util.Serialize;

import std.stdio : writeln;  
  
void main()  
{  
   auto user = new User;  
  
   user.id = 1;  
   user.name = "zoujiaqing";  
   user.status = 1;  
  
   string json = toJson(user);  
  
   writeln(json); // 这里输出的就是上面定义的 json 字符串了  
}  

将 Json 字符串绑定到 Class 对象上:

import hunt.util.Serialize;

import User;

import std.stdio : writeln;

void main()
{
    string json; // 假如这个 json 字符串就是上面那个 json 结构。

    auto user = toObject!User(json);

    writeln(user.name); // 输出 zoujiaqing
}
Login to reply