我正在使用 Eclipse 将 json 转换为 Java 中的字符串。但我不断收到:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException
每次我尝试运行程序时都会出现错误消息。 Eclipse 无法识别我的代码中的任何错误/故障。我做了一些研究,看来我的 json 无效(我使用了 JSONLint
)。
这是我的 json:
String json =
"{"
+"'$type': 'Tfl.Api.Presentation.Entities.RoadCorridor, Tfl.Api.Presentation.Entities',"
+ "'id' : a1,"
+ "'displayName' : 'A1',"
+ "'statusSeverity' : 'Good',"
+ "'statusSeverityDescription' : 'No Exceptional Delays',"
+ "'bounds' : '[[-0.25616,51.5319],[-0.10234,51.6562]]',"
+ "'envelope' : '[[-0.25616,51.5319],[-0.25616,51.6562],[-0.10234,51.6562],[-0.10234,51.5319],[-0.25616,51.5319]]',"
+ "'url' : 'https://api-argon.tfl.gov.uk/Road/a1'"
+ "}";
请有人告诉我 json 有什么问题以及如何更改它以使其有效?我对 java 和 json 很陌生,如果我错过了任何我应该包含的细节,我很抱歉。
最佳答案
您使用单引号作为 json 标识符。使用双引号。
"\"$type\": \"Tfl.Api.Presentation.Entities.RoadCorridor, Tfl.Api.Presentation.Entities\"," + etc.
该错误是因为您的 json 代码格式错误,这些单引号虽然在 Java 中很方便,但对于 json 无效。
关于java.lang.IllegalStateException 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39893832/