如何将以下字符串解析为 json。
String jsonString="
{\"TEST64\":[1,0,16,0],\"TEST59\":[2,0,17,0],\"TEST65\":[2,0,16,0],\"TEST57\":[1,0,16,0],\"TEST66\":[2,0,17,0],\"TEST67\":[1,0,18,0],
\"TEST58\":[2,0,13,0],\"TEST55\":[1,0,17,0],\"TEST68\":[1,0,16,0],\"TEST69\":[2,0,18,0],\"TEST56\":[1,0,16,0],\"TEST53\":[2,0,13,0],
\"TEST54\":[1,0,17,0],\"TEST70\":[2,0,17,0],\"TEST52\":[2,0,16,0],\"TEST51\":[1,0,16,0],\"TEST61\":[2,0,16,0],\"TEST60\":[2,0,14,0],
\"TEST63\":[2,0,18,0],\"TEST62\":[1,0,18,0]}";
我正在使用 gson,并尝试转换为 MAP 但出现异常:
new Gson().fromJson(jsonString, HashMap.class);
并获得异常:
Exception in thread "main" com.google.gson.JsonParseException: Expecting array but found object: java.lang.Object@4c5e176f
at com.google.gson.JsonArrayDeserializationVisitor.startVisitingObject(JsonArrayDeserializationVisitor.java:89)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:119)
at com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
at com.google.gson.MapTypeAdapter.deserialize(MapTypeAdapter.java:68)
at com.google.gson.MapTypeAdapter.deserialize(MapTypeAdapter.java:33)
at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
at com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
at com.google.gson.Gson.fromJson(Gson.java:551)
at com.google.gson.Gson.fromJson(Gson.java:521)
感谢任何帮助。
最佳答案
看来我没有问题。我正在使用 Gson-2.2.4。示例:
public static void main(String[] args) {
try {
String jsonString = "{\"TEST64\":[1,0,16,0],\"TEST59\":[2,0,17,0],\"TEST65\":[2,0,16,0],\"TEST57\":[1,0,16,0],\"TEST66\":[2,0,17,0],\"TEST67\":[1,0,18,0],\"TEST58\":[2,0,13,0],\"TEST55\":[1,0,17,0],\"TEST68\":[1,0,16,0],\"TEST69\":[2,0,18,0],\"TEST56\":[1,0,16,0],\"TEST53\":[2,0,13,0],\"TEST54\":[1,0,17,0],\"TEST70\":[2,0,17,0],\"TEST52\":[2,0,16,0],\"TEST51\":[1,0,16,0],\"TEST61\":[2,0,16,0],\"TEST60\":[2,0,14,0],\"TEST63\":[2,0,18,0],\"TEST62\":[1,0,18,0]}";
HashMap m = new Gson().fromJson(jsonString, HashMap.class);
System.out.println(m);
} catch (Exception e) {
e.printStackTrace();
}
}
这段代码成功将json字符串转换成HashMap。 hashMap的Key是String,value是ArrayList。
输出:
{TEST64=[1.0, 0.0, 16.0, 0.0], TEST59=[2.0, 0.0, 17.0, 0.0], TEST65=[2.0, 0.0, 16.0, 0.0], TEST57=[1.0, 0.0, 16.0, 0.0], TEST66=[2.0, 0.0, 17.0, 0.0], TEST67=[1.0, 0.0, 18.0, 0.0], TEST58=[2.0, 0.0, 13.0, 0.0], TEST55=[1.0, 0.0, 17.0, 0.0], TEST68=[1.0, 0.0, 16.0, 0.0], TEST69=[2.0, 0.0, 18.0, 0.0], TEST56=[1.0, 0.0, 16.0, 0.0], TEST53=[2.0, 0.0, 13.0, 0.0], TEST54=[1.0, 0.0, 17.0, 0.0], TEST70=[2.0, 0.0, 17.0, 0.0], TEST52=[2.0, 0.0, 16.0, 0.0], TEST51=[1.0, 0.0, 16.0, 0.0], TEST61=[2.0, 0.0, 16.0, 0.0], TEST60=[2.0, 0.0, 14.0, 0.0], TEST63=[2.0, 0.0, 18.0, 0.0], TEST62=[1.0, 0.0, 18.0, 0.0]}
关于java - 通过 Gson 解析 json 字符串格式 = {TEST :[1, 2,3,4]},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22877111/