diff --git a/pom.xml b/pom.xml
index ad852c7d..bd6a5a5c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.contentstack.sdk
java
- 2.0.2
+ 2.0.3
jar
contentstack-java
Java SDK for Contentstack Content Delivery API
diff --git a/src/main/java/com/contentstack/sdk/AssetModel.java b/src/main/java/com/contentstack/sdk/AssetModel.java
index 15c4ffb3..7be3db68 100644
--- a/src/main/java/com/contentstack/sdk/AssetModel.java
+++ b/src/main/java/com/contentstack/sdk/AssetModel.java
@@ -1,8 +1,10 @@
package com.contentstack.sdk;
+import java.util.LinkedHashMap;
import org.json.JSONArray;
import org.json.JSONObject;
+
/**
* The type Asset model.
*/
@@ -25,11 +27,10 @@ class AssetModel {
* @param isArray the is array
*/
public AssetModel(JSONObject response, boolean isArray) {
-
if (isArray) {
json = response;
} else {
- json = response.optJSONObject("asset");
+ json = new JSONObject((LinkedHashMap, ?>) response.get("asset"));
}
if (json != null) {
diff --git a/src/main/java/com/contentstack/sdk/AssetsModel.java b/src/main/java/com/contentstack/sdk/AssetsModel.java
index 9811ebe4..4f57833b 100644
--- a/src/main/java/com/contentstack/sdk/AssetsModel.java
+++ b/src/main/java/com/contentstack/sdk/AssetsModel.java
@@ -1,10 +1,10 @@
package com.contentstack.sdk;
+import java.util.ArrayList;
+import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
-import java.util.ArrayList;
-import java.util.List;
/**
* The type Assets model.
@@ -19,7 +19,12 @@ class AssetsModel {
* @param response the response
*/
public AssetsModel(JSONObject response) {
- JSONArray listResponse = response != null && response.has("assets") ? response.optJSONArray("assets") : null;
+ JSONArray listResponse = null;
+ Object rawAssets = response.get("assets"); // Get assets
+ if (rawAssets instanceof List) { // Check if it's an ArrayList
+ List> assetsList = (List>) rawAssets;
+ listResponse = new JSONArray(assetsList); // Convert to JSONArray
+ }
if (listResponse != null) {
listResponse.forEach(model -> {
JSONObject modelObj = (JSONObject) model;
diff --git a/src/main/java/com/contentstack/sdk/CSConnectionRequest.java b/src/main/java/com/contentstack/sdk/CSConnectionRequest.java
index ab1a5f67..592b224f 100644
--- a/src/main/java/com/contentstack/sdk/CSConnectionRequest.java
+++ b/src/main/java/com/contentstack/sdk/CSConnectionRequest.java
@@ -1,10 +1,10 @@
package com.contentstack.sdk;
-import org.json.JSONObject;
-
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
+import org.json.JSONObject;
+
import static com.contentstack.sdk.Constants.*;
@@ -128,7 +128,8 @@ public void onRequestFinished(CSHttpConnection request) {
EntriesModel model = new EntriesModel(jsonResponse);
notifyClass.getResultObject(model.objectList, jsonResponse, true);
} else if (request.getController().equalsIgnoreCase(Constants.FETCHENTRY)) {
- EntryModel model = new EntryModel(jsonResponse);
+ JSONObject jsonModel = new JSONObject((LinkedHashMap, ?>) jsonResponse.get("entry"));
+ EntryModel model = new EntryModel(jsonModel);
entryInstance.resultJson = model.jsonObject;
entryInstance.title = model.title;
entryInstance.url = model.url;
diff --git a/src/main/java/com/contentstack/sdk/CSHttpConnection.java b/src/main/java/com/contentstack/sdk/CSHttpConnection.java
index 4a7c1b23..5a65734e 100644
--- a/src/main/java/com/contentstack/sdk/CSHttpConnection.java
+++ b/src/main/java/com/contentstack/sdk/CSHttpConnection.java
@@ -1,19 +1,12 @@
package com.contentstack.sdk;
-import okhttp3.Request;
-import okhttp3.ResponseBody;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import retrofit2.Call;
-import retrofit2.Response;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.json.JsonMapper;
+import com.fasterxml.jackson.databind.type.MapType;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
import java.net.SocketTimeoutException;
+import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Iterator;
@@ -22,10 +15,16 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.IntStream;
-import com.fasterxml.jackson.databind.ObjectMapper; // Jackson for JSON parsing
-import com.fasterxml.jackson.databind.json.JsonMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.fasterxml.jackson.databind.type.MapType;
+import okhttp3.Request;
+import okhttp3.ResponseBody;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import retrofit2.Call;
+import retrofit2.Response;
+
+
+
import static com.contentstack.sdk.Constants.*;
@@ -230,7 +229,7 @@ private void getService(String requestUrl) throws IOException {
MapType type = mapper.getTypeFactory().constructMapType(LinkedHashMap.class, String.class,
Object.class);
Map responseMap = mapper.readValue(response.body().string(), type);
-
+
// Use the custom method to create an ordered JSONObject
responseJSON = createOrderedJSONObject(responseMap);
if (this.config.livePreviewEntry != null && !this.config.livePreviewEntry.isEmpty()) {
diff --git a/src/main/java/com/contentstack/sdk/ContentTypesModel.java b/src/main/java/com/contentstack/sdk/ContentTypesModel.java
index edfe2c1c..10daf7a2 100644
--- a/src/main/java/com/contentstack/sdk/ContentTypesModel.java
+++ b/src/main/java/com/contentstack/sdk/ContentTypesModel.java
@@ -1,8 +1,13 @@
package com.contentstack.sdk;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
+
+
/**
* The ContentTypesModel that contains content type response
*/
@@ -12,16 +17,26 @@ public class ContentTypesModel {
private JSONArray responseJSONArray = new JSONArray();
public void setJSON(JSONObject responseJSON) {
-
if (responseJSON != null) {
String ctKey = "content_type";
- if (responseJSON.has(ctKey) && responseJSON.opt(ctKey) instanceof JSONObject) {
- this.response = responseJSON.optJSONObject(ctKey);
+ if (responseJSON.has(ctKey) && responseJSON.opt(ctKey) instanceof LinkedHashMap) {
+ this.response = new JSONObject((LinkedHashMap, ?>) responseJSON.get(ctKey));
}
String ctListKey = "content_types";
- if (responseJSON.has(ctListKey) && responseJSON.opt(ctListKey) instanceof JSONArray) {
- this.response = responseJSON.optJSONArray(ctListKey);
- this.responseJSONArray = (JSONArray) this.response;
+ if (responseJSON.has(ctListKey) && responseJSON.opt(ctListKey) instanceof ArrayList) {
+ ArrayList> contentTypes = (ArrayList) responseJSON.get(ctListKey);
+ List