/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.json; import com.liferay.portal.kernel.json.JSONDeserializer; import com.liferay.portal.kernel.json.JSONDeserializerTransformer; import jodd.json.JsonParser; import jodd.json.ValueConverter; /** * @author Brian Wing Shun Chan */ public class JSONDeserializerImpl<T> implements JSONDeserializer<T> { public JSONDeserializerImpl() { _jsonDeserializer = new PortalJsonParser(); } @Override public T deserialize(String input) { return _jsonDeserializer.parse(input); } @Override public T deserialize(String input, Class<T> targetType) { return _jsonDeserializer.parse(input, targetType); } @Override public <K, V> JSONDeserializer<T> transform( JSONDeserializerTransformer<K, V> jsonDeserializerTransformer, String field) { ValueConverter<K, V> valueConverter = new JoddJsonDeserializerTransformer<>(jsonDeserializerTransformer); _jsonDeserializer.use(field, valueConverter); return this; } @Override public JSONDeserializer<T> use(String path, Class<?> clazz) { _jsonDeserializer.map(path, clazz); return this; } private final JsonParser _jsonDeserializer; }