如何在c ++中将地图写为json对象

时间:2014-01-18 04:05:06

标签: c++ json

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

分隔

如何从c ++结构转换为json对象?并再次将此创建的json对象作为地图读取。

1 个答案:

答案 0 :(得分:0)

我第二次@Hot Licks花了5分钟来学习JSON语法。甚至可能是C ++。

假设一个id = 1234和name ='nandini'的密钥结构,它将被序列化为:

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

同样适用于价值结构,它不具有您建议的格式,但类似于(对于值为1,2和3的结构):

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

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

对于映射部分,Json(或者JavaScript)不支持字符串以外的键,就像其他语言一样。如果您使用的是支持std :: map的库,那么请使用它。否则,您可以使用类似对象或类似物体的东西。 e.g。

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

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

反序列化会比较复杂,你一定要看一下Json库。看看JSON.org

上的JSON解析器