将结构转换为Json的最佳方法是什么?

德米特里·布布嫩科夫(Dmitry Bubnenkov)

我仍在寻找将日期转换为Json的最佳方法。我需要这样的结构:

"tags": { "Python": 1, "Java": 3, "Linux": 8 }

我的第一个尝试是使用关联数组:如何将关联数组转换为key:value?

但是后来我知道这不是最好的选择。因此,我决定创建结构数组。

接下来的代码只是创建结构的测试数组,并用测试数据填充它:

struct MyData
    {
        string name;
        int value;
    }

    MyData [] mydata;
    string mystr = "qwert";

    foreach (i; 1..5)
    {
        MyData md;
        md.name = to!(string)(mystr[i]) ~ to!(string)(mystr[i]); // just to have double letters like: "qq"
        md.value = i;
        mydata ~= md;
    }

因此,在下一步中,我可以使用遍历结构数组foreach,并使用字符串填充创建正确的json,例如:

    string tagsList = `"` ~ data.name ~ `":` ~ to!string(data.value) ~ `,`;
    write(tagsList);

结果将是这样的:

"ww":1,"ee":2,"rr":3,"tt":4,

但是它看起来很脏,我需要在末尾切逗号。

我在Google上搜索并发现了几个类似的模块painlessjson这些模块允许我将结构序列化为json,但是它以不同的方式工作。它已在结构中使用元素的名称,并且我得到类似以下内容的信息:{"name":"ww","value":1}

那么我应该使用哪种语言来获得正确的结果呢?

抽象类型

为您的结构创建自定义序列化例程不是什么大问题std.json

import std.stdio;
import std.json;

struct Data
{
    string name;
    int value;
    void serialize(ref JSONValue jv)
    {
        jv[name] = value;
    }
}

void main(string[] args)
{
    Data[] data = [Data("a",1), Data("b",2)];
    JSONValue obj = parseJSON("{}");
    foreach(Data d; data)
        d.serialize(obj);
    writeln(obj.toPrettyString);
}

如您所见,代码是干净的,只需编写一个LOC。它以您期望的格式打印:

{“ a”:1,“ b”:2}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将json.RawMessage转换为结构的正确方法是什么?

来自分类Dev

将字节数组转换为IntStream的最佳方法是什么?

来自分类Dev

将原始向量转换为安全列表类型的最佳方法是什么(Arraylist)

来自分类Dev

将char数组(无null终止)转换为字符串的最佳方法是什么

来自分类Dev

将结果集转换为json的最佳方法是什么

来自分类Dev

布置座位表的最佳方法是什么,转换表格结构的最佳方法是什么?

来自分类Dev

在Julia中将int转换为char的最佳方法是什么?

来自分类Dev

在Ruby或Rails中,将美国东部时间转换为UTC的最佳方法是什么?

来自分类Dev

将结构转换为Json的最佳方法是什么?

来自分类Dev

将LocalDate和LocalTime转换为java.util.date的最佳方法是什么?

来自分类Dev

在Julia中将Int转换为String的最佳方法是什么?

来自分类Dev

将获胜机会转换为布尔的最佳方法是什么?

来自分类Dev

当字段中可能包含逗号和引号时,从CSV转换为JSON的最佳方法是什么?

来自分类Dev

在python中键入时将输入转换为*的最佳方法是什么?

来自分类Dev

将Swift字符串转换为swift-currency / USD格式的最佳方法是什么?

来自分类Dev

将包含多个变量的文本变量转换为R中的单独变量的最佳方法是什么?

来自分类Dev

将文本文件转换为pandas数据框的最佳方法是什么?

来自分类Dev

将对象转换为单独模型的最佳方法是什么

来自分类Dev

在Swift中将String转换为[Character]的最佳方法是什么?

来自分类Dev

将Qt对象(QgraphicsItem)转换为C ++类对象的最佳方法是什么

来自分类Dev

将字符串转换为关联数组的最佳方法是什么

来自分类Dev

将度数转换为象限名称的最佳方法是什么

来自分类Dev

在Angular 2打字稿中将JSON转换为通用Object []的最佳方法是什么?

来自分类Dev

将Ant模块转换为Maven,最佳实践是什么?

来自分类Dev

在Python2.7中将列表转换为字典的最佳方法是什么

来自分类Dev

将数字转换为相应单词的最佳方法是什么?

来自分类Dev

将字符串转换为双精度的最佳方法是什么

来自分类Dev

将包含 JSON 的 Avro 文件转换为 Snowflake 上的表结构的正确方法是什么?

来自分类Dev

将json字符串转换为对象数组的最佳方法是什么?

Related 相关文章

  1. 1

    将json.RawMessage转换为结构的正确方法是什么?

  2. 2

    将字节数组转换为IntStream的最佳方法是什么?

  3. 3

    将原始向量转换为安全列表类型的最佳方法是什么(Arraylist)

  4. 4

    将char数组(无null终止)转换为字符串的最佳方法是什么

  5. 5

    将结果集转换为json的最佳方法是什么

  6. 6

    布置座位表的最佳方法是什么,转换表格结构的最佳方法是什么?

  7. 7

    在Julia中将int转换为char的最佳方法是什么?

  8. 8

    在Ruby或Rails中,将美国东部时间转换为UTC的最佳方法是什么?

  9. 9

    将结构转换为Json的最佳方法是什么?

  10. 10

    将LocalDate和LocalTime转换为java.util.date的最佳方法是什么?

  11. 11

    在Julia中将Int转换为String的最佳方法是什么?

  12. 12

    将获胜机会转换为布尔的最佳方法是什么?

  13. 13

    当字段中可能包含逗号和引号时,从CSV转换为JSON的最佳方法是什么?

  14. 14

    在python中键入时将输入转换为*的最佳方法是什么?

  15. 15

    将Swift字符串转换为swift-currency / USD格式的最佳方法是什么?

  16. 16

    将包含多个变量的文本变量转换为R中的单独变量的最佳方法是什么?

  17. 17

    将文本文件转换为pandas数据框的最佳方法是什么?

  18. 18

    将对象转换为单独模型的最佳方法是什么

  19. 19

    在Swift中将String转换为[Character]的最佳方法是什么?

  20. 20

    将Qt对象(QgraphicsItem)转换为C ++类对象的最佳方法是什么

  21. 21

    将字符串转换为关联数组的最佳方法是什么

  22. 22

    将度数转换为象限名称的最佳方法是什么

  23. 23

    在Angular 2打字稿中将JSON转换为通用Object []的最佳方法是什么?

  24. 24

    将Ant模块转换为Maven,最佳实践是什么?

  25. 25

    在Python2.7中将列表转换为字典的最佳方法是什么

  26. 26

    将数字转换为相应单词的最佳方法是什么?

  27. 27

    将字符串转换为双精度的最佳方法是什么

  28. 28

    将包含 JSON 的 Avro 文件转换为 Snowflake 上的表结构的正确方法是什么?

  29. 29

    将json字符串转换为对象数组的最佳方法是什么?

热门标签

归档