我的样本Json数组:
{
"tag":{
"id": "1112",
"AP": "77",
"data":[
{
"name": "position",
"type": "integer",
"unit": "meter",
"value": 5
},
{
"type": "RSSI",
"unit": "dBm",
"value": -76
}
]
}
}
这是我的代码:
public void parse(){
String json = new String(inPacket.getData());
JsonElement jelement = new JsonParser().parse(json);
JsonObject jobject = jelement.getAsJsonObject();
}
和例外代码:
Exception in thread "Thread-0"
com.google.gson.JsonSyntaxException:
com.google.gson.stream.MalformedJsonException:
Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 154
at com.google.gson.JsonParser.parse(JsonParser.java:65)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
我不知道JSON数组。但谷歌Gson库可以帮助我。 我该如何解决这个问题?你能帮帮我吗?
答案 0 :(得分:1)
FIX :: Use String.trim()方法。本守则正在运作。
public void parse(){
String json = new String(inPacket.getData());
JsonElement jelement = new JsonParser().parse(json.trim());
JsonObject jobject = jelement.getAsJsonObject();
}
答案 1 :(得分:1)
如果trim()不起作用,则可以使用setLenient:
JsonReader reader = new JsonReader(new StringReader(myFooString));
reader.setLenient(true);
new JsonParser().parse(reader)
JsonReader reader = new JsonReader(new StringReader(myFooString));
reader.setLenient(true);
new JsonParser().parse(reader)