如何在c++中将map写成json对象

how to write a map as a json object in c++

本文关键字:写成 json 对象 map 中将 c++      更新时间:2023-10-16

我有一个将数据写入json键并对应于该键的值。我的键是一个有两个值{int id&char*name}的结构,我的值也是一个有三个值{int a,int b,int c}的结构。我打算把json中的键作为{id:name},值也用分隔符{a:b:c}分隔

如何从c++结构转换为json对象?并将这个创建的json对象作为映射再次读取。

I second@Hot Licks关于花5分钟学习JSON语法。甚至可能是C++。

假设一个id=1234、name=‘andini’的密钥结构,它将被序列化为:

"{ 'id': 1234, 'name': 'nandini' }"

对于值结构也是如此,它不会有你建议的格式,而是类似于(对于值为1、2和3的结构):

"{ 'a': 1, 'b': 2, 'c': 3 }"

序列化很容易。您可以使用任何您喜欢的字符串构建技术,包括sprintf或stringstream的任何变体。你当然可以使用Json图书馆。

至于映射部分,Json(或JavaScript)与其他语言一样,不支持字符串以外的键。如果你使用的是一个支持std::map的库,那么就使用它。否则,你可以附带一个对象数组或类似的东西。例如

"[ { key: {...}, val: {...} }, { key: {...}, val: {...} },    ...    ]

然后,在反序列化之后,将数组放入映射中。

反序列化会更棘手,您肯定应该看看Json库。看看JSON.org 上的JSON解析器