我使用jsoncpp以json格式存储信息。我现在需要在另一个json字符串中存储一个json字符串。。。换句话说,我需要在一个项目中存储一个子项目。
使用jsoncpp生成json字符串,我得到这个。。。
{"id":"1","name":"Advil","sub_item":"{\"id\":\"2\",\"name\":\"Liquid Gel Advil\"}\n"}
它在运行时工作得非常好。但是,当我的程序将此信息保存到mysql数据库(在退出时)并在我重新启动程序时将其加载回时,它会从mysql数据库加载相同的json字符串,但现在看起来是这样的。。。
{"id":"1","name":"Advil","sub_item":"{"id":"2","name":"Liquid Gel Advil"}"}
这是一个无效的json字符串。我不知道为什么会这样,有人能告诉我到底发生了什么。。。
我的mysql查询字符串如下:
UPDATE json_string_test SET jsonstring='{"id":"1","name":"Advil","sub_item":"{\"id\":\"2\",\"name\":\"Liquid Gel Advil\"}\n"}';
2条答案
按热度按时间x8goxv8g1#
经过进一步研究,我发现fastwriter被贬低了,streamwriterbuilder是推荐的作家。但是,它仍然产生了与fastwrtier相同的问题。。。。
我试着通过以下操作来操纵一个补丁。。。
1) 在保存到数据库之前,我只替换了子json字符串(id为2)中与\“to\”匹配的所有子字符串。
2) 加载json字符串后,我只替换子json字符串(id为2)中匹配\“to\”的所有子字符串。
我不明白为什么我要这么做,所以如果有人有更好的解决方案或解释。。。我很想听。
a64a0gku2#
我认为您需要转置最后2个字符(假设您发布的字符串是逐字的)。你有
Advil\"}\n"}
但我认为你需要Advil\"}\n}"