001
014
015 package com.liferay.portal.json;
016
017 import com.liferay.portal.kernel.json.JSONSerializer;
018 import com.liferay.portal.kernel.json.JSONTransformer;
019
020 import jodd.json.JsonSerializer;
021 import jodd.json.TypeJsonSerializer;
022
023
026 public class JSONSerializerImpl implements JSONSerializer {
027
028 public JSONSerializerImpl() {
029 _jsonSerializer = new JsonSerializer();
030 }
031
032 @Override
033 public JSONSerializerImpl exclude(String... fields) {
034 _jsonSerializer.exclude(fields);
035
036 return this;
037 }
038
039 @Override
040 public JSONSerializerImpl include(String... fields) {
041 _jsonSerializer.include(fields);
042
043 return this;
044 }
045
046 @Override
047 public String serialize(Object target) {
048 return _jsonSerializer.serialize(target);
049 }
050
051 @Override
052 public String serializeDeep(Object target) {
053 return _jsonSerializer.deep(true).serialize(target);
054 }
055
056 @Override
057 public JSONSerializerImpl transform(
058 JSONTransformer jsonTransformer, Class<?> type) {
059
060 TypeJsonSerializer<?> typeJsonSerializer = null;
061
062 if (jsonTransformer instanceof TypeJsonSerializer) {
063 typeJsonSerializer = (TypeJsonSerializer<?>)jsonTransformer;
064 }
065 else {
066 typeJsonSerializer = new JoddJsonTransformer(jsonTransformer);
067 }
068
069 _jsonSerializer.use(type, typeJsonSerializer);
070
071 return this;
072 }
073
074 @Override
075 public JSONSerializerImpl transform(
076 JSONTransformer jsonTransformer, String field) {
077
078 TypeJsonSerializer<?> typeJsonSerializer = null;
079
080 if (jsonTransformer instanceof TypeJsonSerializer) {
081 typeJsonSerializer = (TypeJsonSerializer<?>)jsonTransformer;
082 }
083 else {
084 typeJsonSerializer = new JoddJsonTransformer(jsonTransformer);
085 }
086
087 _jsonSerializer.use(field, typeJsonSerializer);
088
089 return this;
090 }
091
092 private final JsonSerializer _jsonSerializer;
093
094 }