Как использовать метод LazyList toJson с массивами json? - PullRequest
0 голосов
/ 10 июля 2019

Я делаю связь один ко многим с двумя таблицами: «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" и "parent {rols"[conecepto]} "params, поэтому я указываю в методе 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
        }
      ]
    }
  }
]

Как вы можете видеть, он не получает параметр" concepto ", и он включает в себя все параметры «родителей».

Итак, есть ли способ получить только некоторые параметры? и как я могу получить доступ к значениям параметров родителей {rols}?

Я использую этот код для создания строки json

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


1 Ответ

0 голосов
/ 11 июля 2019

Документацию LazyList.toJson() можно найти здесь: http://javalite.github.io/activejdbc/snapshot/org/javalite/activejdbc/LazyList.html#toJson-boolean-java.lang.String...-

Похоже, вы получаете правильный результат. Если ваш concepto = null, то, возможно, это на самом деле NULL в базе данных? Вы смотрели на это?

Кроме того, список атрибутов применяется к текущей модели, а не к дочерним элементам или родителям, что означает, что под узлом родителей вы получите все атрибуты.

...