001
014
015 package com.liferay.portal.json;
016
017 import com.liferay.portal.kernel.json.JSONDeserializer;
018 import com.liferay.portal.kernel.json.JSONDeserializerTransformer;
019
020 import jodd.json.JsonParser;
021 import jodd.json.ValueConverter;
022
023
026 public class JSONDeserializerImpl<T> implements JSONDeserializer<T> {
027
028 public JSONDeserializerImpl() {
029 _jsonDeserializer = new PortalJsonParser();
030 }
031
032 @Override
033 public T deserialize(String input) {
034 return _jsonDeserializer.parse(input);
035 }
036
037 @Override
038 public T deserialize(String input, Class<T> targetType) {
039 return _jsonDeserializer.parse(input, targetType);
040 }
041
042 @Override
043 public <K, V> JSONDeserializer<T> transform(
044 JSONDeserializerTransformer<K, V> jsonDeserializerTransformer,
045 String field) {
046
047 ValueConverter<K, V> valueConverter =
048 new JoddJsonDeserializerTransformer<>(jsonDeserializerTransformer);
049
050 _jsonDeserializer.use(field, valueConverter);
051
052 return this;
053 }
054
055 @Override
056 public JSONDeserializer<T> use(String path, Class<?> clazz) {
057 _jsonDeserializer.map(path, clazz);
058
059 return this;
060 }
061
062 private final JsonParser _jsonDeserializer;
063
064 }