将图像添加到现有JSON

时间:2016-02-10 11:18:47

标签: ruby-on-rails json base64

我有一个函数可以检索我一个JSON,现在我想为base64中的每个条目添加一个图像(取决于我将添加的图像的标题),它有多个级别。 怎么办呢?

这是我的函数已经检索过的JSON示例:

"Animals": {

      "Cat": true,

      "Dog": true,

      "Dino": {},

      "Shark": {

         "White": true,

         "Regular": true

      },

   }

我想删除true而不是它,将其替换为依赖于标记的图像(base64格式)。

完成的JSON看起来像:

"Animals": {

      "Cat": YWJjMTIzIT8kKiYoKSctPUB+abc123!?$*&()'-=@~,

      "Dog": QWxhZGRpbjpvcGVuIHNlc2FtZQ==,

     ....

1 个答案:

答案 0 :(得分:0)

好的,这是一个解决你的问题的答案。我怀疑这不是很有帮助。目前还不清楚你实际上遇到了什么困难。

假设我有一个有效的JSON字符串(注意:你的有效JSON字符串:我必须删除一个逗号并用花括号括起整个东西以使其有效)

mystring = "{\"Animals\": { \"Cat\": true, \"Dog\": true, \"Dino\": {}, \"Shark\": { \"White\": true, \"Regular\": true } }}"

我使用JSON.parse将其转换为ruby哈希:

myhash = JSON.parse(string)
=> {"Animals"=>{"Cat"=>true, "Shark"=>{"Regular"=>true, "White"=>true}, "Dog"=>true, "Dino"=>{}}

我将Cat的值更改为所需的值。请注意,我不知道如果这个值是正确的,或者它是如何生成的,它只是从你的问题中复制过来。

myhash["Animals"]["Cat"] = "YWJjMTIzIT8kKiYoKSctPUB+abc123!?$*&()'-=@~"
=> "YWJjMTIzIT8kKiYoKSctPUB+abc123!?$*&()'-=@~"

我将它转换回JSON。

myhash.to_json
=> "{\"Animals\":{\"Cat\":\"YWJjMTIzIT8kKiYoKSctPUB+abc123!?$*&()'-=@~\",\"Shark\":{\"Regular\":true,\"White\":true},\"Dog\":true,\"Dino\":{}}}"