我有一个数据写入json键并对应该值。我的关键是一个具有两个值的结构{int id& char * name},我的值也是一个具有三个值{int a,int b,int c}的结构。我打算将密钥放在json中作为{id:name},并且值也用分隔符{a:b:c}
分隔如何从c ++结构转换为json对象?并再次将此创建的json对象作为地图读取。
答案 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解析器