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

改型2,解析json,忽略数组中错误的数据类型

慎建本
2023-03-14

我试图解析来自服务器的响应json。数据是一个对象数组,但有时服务器在数组的项之间发送一个布尔值。像这样:

{
    "msg_code": 200,
    "msg_type": "success",
    "msg_text": "success",
    "msg_data": [
        {
            "pid": "1234567",
            "time": "1459029423",
            "parent_pid": "0"
        },
        false,
        {
            "pid": "987654",
            "time": "1458997403",
            "parent_pid": "0"
        }
    ]
}

正如你所看到的,他们之间有一个错误。

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BOOLEAN at line 1 column 9988 path $.msg_data[12]
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(logLevel);

        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .addInterceptor(logging)
                .connectTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .readTimeout(60, TimeUnit.SECONDS)
                .build();

        gooderApi = new Retrofit.Builder()
                .baseUrl(BASE_API_URL)
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .client(okHttpClient)
                .build()
                .create(ApiInterface.class);

tnx提前。

共有1个答案

吴安和
2023-03-14

将调用更改为JSON Object或删除服务器中的false

我想改装没有解决方案......

Bcozboolean进入POJO对象数组。

{
    "msg_code": 200,
    "msg_type": "success",
    "msg_text": "success",
    "msg_data": [
        {
            "pid": "1234567",
            "time": "1459029423",
            "parent_pid": "0"
        },
        false,
        {
            "pid": "987654",
            "time": "1458997403",
            "parent_pid": "0"
        }
    ]
}

享受编码..........

 类似资料:
  • 我有一个实体User,它有两个Data类型的字段。 我有一个带有save()方法的Controller,它将用户的数据保存到postgesql数据库中。 我有一个JSON,我将它发送到controller { "name":"Max "," createdOn":"2019-07-26 11:13:39 "," modified on ":" 2019-07-26 11:13:39 " } 最后在

  • 问题内容: 我有一个具有预定义数据结构的对象: 和JSON应该是 我想以肯定的方式处理JSON错误,并且每当服务器为定义的数据类型返回意外的值时,我都希望它被忽略并设置默认值(空)。 现在,当JSON部分无效时,我得到了JSON阅读器异常: 而且我什么都没有。我想要的是获取一个对象: 并分析警告(如果可能)。可以使用JSON.NET完成吗? 问题答案: 为了能够处理反序列化错误,请使用以下代码:

  • 问题内容: 我正在尝试从服务器解析JSON响应,如果在post方法中发送的查询中有更改,我将第一个作为响应,否则,我将第二个作为响应。 1: 2: 如您所见,返回对象是否更改,如果没有更改,则返回字符串。 我正在使用这种方法来获取数据,并且我正在使用Gson Converter来映射数据。 这是请求界面 这是我的POJO课 最后我进行了改造电话: 问题答案: 谢谢您的建议,但我想出了一种可行的方法

  • 问题内容: 我已经来了一段时间,感觉好像logstash中的JSON过滤器正在为我删除数据。我最初是从https://www.digitalocean.com/community/tutorials/how- to-install-elasticsearch-logstash-and-kibana-elk-stack-on- ubuntu-14-04 跟随该教程的 我进行了一些更改,但基本相同。我

  • 我试图实现一个简单的android应用程序,在这个应用程序中,我试图通过php站点检索数据库值,但是下面的代码在解析json数据时产生错误。 我的php文件编码json如下 Android类如下 最后是logcat输出 如何获得表的所需值 请帮忙。

  • 问题内容: 我正在使用Retrofit(与OkHttp和GSON结合使用)与在线Web服务进行通信。该Web服务的所有响应都有一个默认包装,类似于: 在此示例中,将为或。此外,仅在处理请求时发生错误时才包含任何内容。最后但并非最不重要的一点将包含调用的实际结果(示例中为字符串,但是某些调用返回JSON数组或JSON对象)。 为了处理此元数据,我创建了一个通用类,如下所示: 我还创建了代表有时给出的