Skip to content

Commit 3e5f55e

Browse files
author
Jonathan Wenger
committed
Avalara-SDK-Java issue #5 - Fix issue where form-data fields were not being properly serialized for complex types.
1 parent 6a592cb commit 3e5f55e

File tree

1 file changed

+22
-8
lines changed

1 file changed

+22
-8
lines changed

src/main/java/Avalara/SDK/ApiClient.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,12 @@ public ApiClient setWriteTimeout(int writeTimeout) {
598598
}
599599

600600

601+
/**
602+
* Format the given parameter object into string.
603+
*
604+
* @param param Parameter
605+
* @return String representation of the parameter
606+
*/
601607
/**
602608
* Format the given parameter object into string.
603609
*
@@ -607,22 +613,30 @@ public ApiClient setWriteTimeout(int writeTimeout) {
607613
public String parameterToString(Object param) {
608614
if (param == null) {
609615
return "";
610-
} else if (param instanceof Date || param instanceof OffsetDateTime || param instanceof LocalDate) {
611-
//Serialize to json string and remove the " enclosing characters
616+
}
617+
// 1) Primitive wrappers and Strings → plain text
618+
if (param instanceof String) {
619+
return (String) param;
620+
}
621+
if (param instanceof Number || param instanceof Boolean) {
622+
return String.valueOf(param);
623+
}
624+
if (param instanceof Date || param instanceof OffsetDateTime || param instanceof LocalDate) {
612625
String jsonStr = json.serialize(param);
626+
// e.g. "\"2025-05-06T12:00:00Z\"" → "2025-05-06T12:00:00Z"
613627
return jsonStr.substring(1, jsonStr.length() - 1);
614-
} else if (param instanceof Collection) {
628+
}
629+
if (param instanceof Collection) {
615630
StringBuilder b = new StringBuilder();
616-
for (Object o : (Collection) param) {
617-
if (b.length() > 0) {
631+
for (Object o : (Collection<?>) param) {
632+
if (!b.isEmpty()) {
618633
b.append(",");
619634
}
620-
b.append(String.valueOf(o));
635+
b.append(parameterToString(o));
621636
}
622637
return b.toString();
623-
} else {
624-
return String.valueOf(param);
625638
}
639+
return json.serialize(param);
626640
}
627641

628642
/**

0 commit comments

Comments
 (0)