当前位置: 代码迷 >> Android >> 在Android改造响应中获取JsonSyntaxException? 错误的可能性 题
  详细解决方案

在Android改造响应中获取JsonSyntaxException? 错误的可能性 题

热度:12   发布时间:2023-08-04 10:10:37.0

相关

Json响应是New line delimiter Json

{"type":"data","id":"xyz"}
{"type":"value","id":"xcf"}
....
....

我正在使用Retrofit发出请求:

public void getWarehouse(){

 //Generation of  RestAdapter
 RestAdapter adapter = new  RestAdapter.Builder ()
            .setEndpoint(URL)
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .setLog(new AndroidLog("= NETWORK ="))
            .build();

 //Making request to API
 adapter.create(WarehouseAPI.class).getWarehouse()
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Observer<Response>() {
         @Override
         public void onCompleted() {
             Log.d(this.getClass().getName(), "OnCompleted ()");
         }

         @Override
         public void onError(Throwable e) {
             Log.d(this.getClass().getName(), "Error:"  + e.toString());
         }

         @Override
         public void onNext(Response response) {
         System.out.println("test");

         }


       });

}

我可以在Android Studio console看到响应,但出现以下错误:

Error:retrofit.RetrofitError: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column 2 path $

错误的可能性

  • 响应位于NdJson ,无法正确解析

  • 如何正确解析?

正如@ trevor-e所提到的,您必须实现一个自定义转换器来处理ndjson格式。 查看以下链接以获取入门指南:

还可以从以下位置检查StringConverter:

您可以将响应转换为常规字符串,然后将每一行解析为一个JSON对象,然后从那里开始。

  相关解决方案