gpt4 book ai didi

java - 在 Android 改造响应中获取 JsonSyntaxException?

转载 作者:太空宇宙 更新时间:2023-11-04 13:19:38 26 4
gpt4 key购买 nike

相关Question

Json的响应是换行符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 控制台 中看到响应,但出现以下错误:

错误:retrofit.RetrofitError:com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:使用 JsonReader.setLenient(true) 接受第 2 行第 2 列路径 $

出错的可能性

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

问题

  • 如何正确解析它?

最佳答案

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

Retrofit — Define a Custom Response Converter

另请查看 StringConverter:How can I return String or JSONObject from asynchronous callback using Retrofit?

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

关于java - 在 Android 改造响应中获取 JsonSyntaxException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33208354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com