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
}