当前位置: 首页 > 知识库问答 >
问题:

使用Gson库进行分析时出现setLenient(true)错误

华欣荣
2023-03-14

我的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库是可以帮助我的。如何解决此问题?你能帮帮我吗?

共有2个答案

郎鹤龄
2023-03-14

修复:: 使用String.trim()方法。这段代码正在工作。

public void parse(){
    String json = new String(inPacket.getData());
    JsonElement jelement = new JsonParser().parse(json.trim());
    JsonObject  jobject = jelement.getAsJsonObject();
}
宋建本
2023-03-14

如果trim()不起作用,可以使用setLenient:

JsonReader reader = new JsonReader(new StringReader(myFooString));
reader.setLenient(true);
JsonParser.parseReader(reader)
 类似资料:
  • 我的ThymileAF模板中有一个AngularJS属性,看起来像这样: 当Thymeleaf尝试处理此模板时,我得到以下异常: Thymeleaf只是不能很好地处理

  • 我试图解决这个错误,但我做不到。 运行时得到的错误 09-03 07:45:34.436 602-6020/fyp.hotelreservationsystemver2 e/recyclerview:没有连接适配器;跳过布局09-03 07:45:34.465 602-6020/fyp.hotelreservationsystemver2 D/reservationmainactivity:[{“

  • 我正在尝试安装yii2alpha。下载composer并添加后运行以下命令时 去composer.json. 我得到以下错误。 问题1-在任何版本中都找不到请求的包最低稳定性,包名中可能有输入错误。 问题2-在任何版本中都找不到请求的包yiisoft/yii2 composer,包名中可能有输入错误。 问题3-在任何版本中都找不到请求的包yiisoft/yii2框架,包名中可能有输入错误。 潜在原

  • 我正在使用xjc解析以下xsd 我收到错误:记录原因:cvc datatypevalid。1.2.1:'xsi:schemaLocation'不是'NCName'的有效值。

  • 问题内容: 我想从类型为的JSON解析数据。我正在使用Google Gson。 我有: 我的课是: 问题答案: 这是执行此操作的简单代码,我避免了所有检查,但这是主要思想。 为了使使用更加通用- 您会发现Gson的javadocs非常清楚并且很有帮助。

  • 问题内容: 我在应用程序中使用Gson,为此,我使用了一些名称与使用Json相同的类。我的应用程序运行良好,但是在编写proguard时,应用程序崩溃了,我猜有些类正在缩小。我的错误是: java.lang.ClassCastException:com.google.gson.internal.StringMap无法转换为com.sample.package.GsonClass 问题答案: 您需要