如何在MySql中使用Lift Mapper存储Json文件

时间:2014-01-25 13:00:23

标签: mysql json scala lift-mapper

我是Liftweb的新手。我想使用Lift Mapper将Json文件存储在Mysql数据库中

我的Json文件如下: -

[
{
    "name": "Root Category",
    "Id": "1",
    "dispName": "",
    "childs": [
        {
            "name": "Sub Category",
            "Id": "",
            "dispName": "",
            "childs": [
                {
                    "name": "Spec1",
                    "Id": "",
                    "dispName": "",
                    "childs": []
                }
            ]
        }
    ]
},
{
    "name": "Root Category",
    "Id": "",
    "dispName": "",
    "childs": [
        {
            "name": "Sub Category",
            "Id": "",
            "dispName": "",
            "childs": [
                {
                    "name": "Spec1",
                    "Id": "",
                    "dispName": "",
                    "childs": []
                }
            ]
        }
    ]
}
]   

是否可以在Lift Mapper中存储Json文件。请给我建议。如果有人提供任何样本

会很棒

最好的问候

GSY

1 个答案:

答案 0 :(得分:0)

目前还没有很好的支持在MySQL中存储JSON。我的意思是它不会提供例如MongoDB提供的功能。但是,如果需要,社区可以提供一些JSON处理功能。鉴于所有这些,您可以将其存储在VARCHAR中。 TEXTBLOB字段类型为简单文本。这是一个Mapper示例:

import net.liftweb.mapper._
import net.liftweb.common._

class SomeDbClass extends LongKeyedMapper[SomeDbClass] with IdPK {
  def getSingleton = SomeDbClass

  // set limit of chars - can be used in `validate()`
  object quota_type extends MappedString(this, 1024)
}

object SomeDbClass extends SomeDbClass with LongKeyedMetaMapper[SomeDbClass]

对于我的一个项目,我将JSON作为字符串存储在Postgres中,因为我只需要读取和写入它,而无需在数据库中按字母解析它。每当我需要具有查询和更新支持的高效JSON存储时,我就会将MongoDB与Record +(Casbah或Rogue)一起使用。