1
19
20 package com.liferay.portal.json;
21
22 import com.liferay.portal.kernel.json.JSONArray;
23 import com.liferay.portal.kernel.json.JSONException;
24 import com.liferay.portal.kernel.json.JSONFactory;
25 import com.liferay.portal.kernel.json.JSONObject;
26 import com.liferay.portal.kernel.log.Log;
27 import com.liferay.portal.kernel.log.LogFactoryUtil;
28
29 import org.jabsorb.JSONSerializer;
30 import org.jabsorb.serializer.MarshallException;
31 import org.jabsorb.serializer.UnmarshallException;
32
33
39 public class JSONFactoryImpl implements JSONFactory {
40
41 public JSONFactoryImpl() {
42 _serializer = new JSONSerializer();
43
44 try {
45 _serializer.registerDefaultSerializers();
46 }
47 catch (Exception e) {
48 _log.error(e, e);
49 }
50 }
51
52 public JSONArray createJSONArray() {
53 return new JSONArrayImpl();
54 }
55
56 public JSONArray createJSONArray(String json) throws JSONException {
57 return new JSONArrayImpl(json);
58 }
59
60 public JSONObject createJSONObject() {
61 return new JSONObjectImpl();
62 }
63
64 public JSONObject createJSONObject(String json) throws JSONException {
65 return new JSONObjectImpl(json);
66 }
67
68 public Object deserialize(JSONObject jsonObj) {
69 return deserialize(jsonObj.toString());
70 }
71
72 public Object deserialize(String json) {
73 try {
74 return _serializer.fromJSON(json);
75 }
76 catch (UnmarshallException ue) {
77 _log.error(ue, ue);
78
79 throw new IllegalStateException("Unable to deserialize oject", ue);
80 }
81 }
82
83 public String serialize(Object obj) {
84 try {
85 return _serializer.toJSON(obj);
86 }
87 catch (MarshallException me) {
88 _log.error(me, me);
89
90 throw new IllegalStateException("Unable to serialize oject", me);
91 }
92 }
93
94 private static Log _log = LogFactoryUtil.getLog(JSONFactoryImpl.class);
95
96 private JSONSerializer _serializer;
97
98 }