如何在json数组中使用LazyList的toJson方法?

时间:2019-07-09 22:05:00

标签: activejdbc javalite

我正在与两个表进行一对多关联:“ usuarios”和“ rol”,这里没有问题,问题是我正在使用函数“ toJson”将咨询结果转换为JSON格式的字符串,就像这样:

[
  {
    "activo":1,
    "alta":null,
    "contrasenia":"AA123.aa",
    "edicion":null,
    "editor_alta":null,
    "editor_edicion":null,
    "email":"dadadada@ssfsfds",
    "id_division":0,
    "id_pools":1,
    "id_roles":2,
    "id_usuarios":1234567895,
    "nombre":"Javier",
    "primer_apellido":"a",
    "segundo_apellido":"a",
    "parents":{
      "rols":[
        {
          "activo":1,
          "alta":"2019-07-08",
          "concepto":"Administrador Pool",
          "descripcion":"Usuario que gestiona a los agentes",
          "edicion":null,
          "editor_alta":1111111111,
          "editor_edicion":null,
          "id_permisos":2,
          "id_roles":2
        }
      ]
    }
  }
]

但是我只想在json中获取一些参数,例如,我只想拥有“ id_usuarios”和“ parents {rols [conecepto]}”参数,因此我在toJson方法中指出了名称这些参数,但结果json是这样的:

[
  {
    "id_usuarios":1234567895,
    "concepto":null,
    "parents":{
      "rols":[
        {
          "activo":1,
          "alta":"2019-07-08",
          "concepto":"Administrador Pool",
          "descripcion":"Usuario que gestiona a los agentes",
          "edicion":null,
          "editor_alta":1111111111,
          "editor_edicion":null,
          "id_permisos":2,
          "id_roles":2
        }
      ]
    }
  }
]

如您所见,它不是在获取“概念”参数,而是包括了“父母”的所有参数。

那么,有什么方法可以获取一些参数吗?我如何才能访问parent {rols}参数的值?

我正在使用此代码创建json字符串

LazyList<Usuarios> usuarios = Usuarios.where("activo = 1").include(Rol.class);
        String json = usuarios.toJson(true, "id_usuarios","concepto");
``


1 个答案:

答案 0 :(得分:0)

LazyList.toJson()文档可在此处找到:http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/LazyList.html#toJson-boolean-java.lang.String...-

看起来您得到正确的结果。如果您的concepto = null可能实际上是数据库中的NULL?你调查了吗?

此外,属性列表适用于当前模型,而不适用于子级或父级,这意味着您将在“父级”节点下获取所有属性。