如何在JSON字符串中存储JSON字符串?

时间:2018-04-10 04:51:39

标签: mysql json jsoncpp

我正在使用jsoncpp以JSON格式存储信息。我现在需要在另一个json字符串中存储一个json字符串......换句话说,我需要在一个项目中存储一个sub_item。

使用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 个答案:

答案 0 :(得分:-1)

经过进一步研究,我发现FastWriter已经过折旧,StreamWriterBuilder是推荐的作家。但是,它仍然产生与FastWrtier相同的问题......

我设法通过执行以下操作来修复...

1)在保存到数据库之前,我在子JSON字符串(id为2)中替换了匹配\“to \\”的所有子串。

2)在加载JSON字符串后,我在所有子JSON字符串(id为2)中替换了匹配\\“to \”的所有子字符串。

我不明白为什么我必须这样做,所以如果有人有更好的解决方案或解释......我很乐意听到它。

答案 1 :(得分:-1)

我认为您需要转置最后2个字符(假设您发布的字符串是逐字的)。你有 for _, currency := range s.Config.Currencies { 但我认为你需要 Advil\"}\n"}