1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lanseba-json-config

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Конфигурация JSON

Описание Maven-компонентов oschina:

<dependency>
  <groupId>com.tcshuo</groupId>
  <artifactId>json-config</artifactId>
  <version>1.0.0</version>
</dependency>
  • Настройка вывода JSON:
  • {ignore:'c'} — игнорировать сложные поля; {ignore:'n'} — не игнорировать поля; {ignore:'na'} — игнорировать поля, отсутствующие в списке разрешённых (allows).
  • {ignores:['dept','post']} — все поля, указанные в ignores, будут игнорированы, что гарантирует отсутствие полей dept и post.
  • {allows:['id','name']} — все поля, указанные в allows, будут выведены, что гарантирует наличие полей id и name.
  • {allows:['id','name'],ignore:'na'} — выводятся только поля id и name; {} — по умолчанию игнорируются сложные поля и массивы.
  • {ignore:'c',allows:['dept']} — все сложные объекты, кроме dept, будут игнорированы.
  • {alias:{id:'value'}} — альтернативное имя для поля id.

  • Пример конфигурации:
{
    "allows": ["id", "name", "date", "dept"],
    "childs": {
        "date": {"format": "yyyy-MM-dd"},
        "dept": {"allows": ["name"]}
    }
}

Этот пример выводит поля id, name, date и dept. Поле date форматируется как yyyy-MM-dd.


public void test1() {

    HashMap<Object, Object> map = new HashMap<>();
    map.put("maptype", BeanType.A);
    Bean beana = new Bean("bean a", BeanType.A);
    Bean beanb = new Bean("bean b", BeanType.B);
    map.put("beana", beana);
    map.put("beanb", beanb);

    ArrayList<Bean> beanList = new ArrayList<>();
    beanList.add(beana);
    beanList.add(beanb);
    map.put("beanList", beanList);

    int[] intArray = new int[]{1, 2, 3};
    map.put("intArray", intArray);

    Bean[] beanArray = new Bean[]{beana, beanb};
    map.put("beanArray", beanArray);
    
}

private void toJson(String config, Object target) {
    System.out.println(JsonConfigParser.parser(config, target).toJson());
}

Запуск тестового случая SimpleTestCase:

Running com.tcshuo.json.config.SimpleTestCase
{"intArray":[1,2,3]}
{"beanb":{"name":"bean b"},"beanArray":[{"name":"bean a"},{"name":"bean b"}],"beana":{"name":"bean a"},"beanList":[{"name":"bean a"},{"name":"bean b"}],"intArray":[1,2,3],"maptype":{"declaringClass":"com.tcshuo.json.config.BeanType","name":"a","value":0,"javaEnumName":"A"}}
[{"name":"bean a","type":{"declaringClass":"com.tcshuo.json.config.BeanType","name":"a","value":0,"javaEnumName":"A"},"date":"2015-05-06 18:57:15"},{"name":"bean b","type":{"declaringClass":"com.tcshuo.json.config.BeanType","name":"b","value":1,"javaEnumName":"B"},"date":"2015-05-06 18:57:15"}]
[{"name":"bean a","date":"2015年05月"},{"name":"bean b","date":"2015年05月"}]
[{"name":"bean a","type":{"javaEnumName":"A"}},{"name":"bean b","type":{"javaEnumName":"B"}}]
[{"name":"bean a","type":{"NAME":"A"}},{"name":"bean b","type":{"NAME":"B"}}]

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Настраиваемый вывод в формате JSON, вы можете гибко определять формат JSON для вывода ваших объектов Java. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lanseba-json-config.git
git@api.gitlife.ru:oschina-mirror/lanseba-json-config.git
oschina-mirror
lanseba-json-config
lanseba-json-config
master