我正在尝试使用TransactionBuilder在Avalara中创建一个TransactionModel对象。我正在遵循SDK中的示例。为我公司修改的示例代码为Avalara本身控制的DateTime对象抛出gson.JsonSyntaxException。我可以更改DateTime值,但无法告诉它如何设置其格式。对我来说,这似乎是一个Avalara错误,但我希望自己错了。

这是我的代码(注意:无论是否使用.withDate,都是相同的例外):

 TransactionModel transaction = new TransactionBuilder(client, "COMPANY", DocumentType.SalesOrder, "myCompany.")
.withDate(Calendar.getInstance().getTime())
.withAddress(TransactionAddressType.SingleLocation, null, null, null, null, null, zipCode, "US")
.withLine( new BigDecimal(100.0), new BigDecimal(1), "P0000000")
.Create();


这是例外:

com.google.gson.JsonSyntaxException: 2019-10-01
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:107)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:82)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:35)
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
at com.google.gson.Gson.fromJson(Gson.java:803)
at com.google.gson.Gson.fromJson(Gson.java:768)
at com.google.gson.Gson.fromJson(Gson.java:717)
at net.avalara.avatax.rest.client.serializer.JsonSerializer.DeserializeObject(JsonSerializer.java:15)
at net.avalara.avatax.rest.client.RestCall.call(RestCall.java:99)
at net.avalara.avatax.rest.client.AvaTaxClient.createTransaction(AvaTaxClient.java:19174)
at net.avalara.avatax.rest.client.TransactionBuilder.Create(TransactionBuilder.java:425


注意:我也在下面的链接中提出了问题,但是我没有提出正确的问题,而忽略了我根本无法更改任何JSON格式的部分:
Avalara: What is a "DateTime" valid format for the json date?

最佳答案

更新您的pom.xml或等效文件以下载gson的最新版本,问题将消失。在以下位置查看Avalara论坛:
https://community.avalara.com/avalara/topics/error-parsing-date-jre-sdk

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

09-26 21:47