【发布时间】:2015-10-19 06:55:47
【问题描述】:
相关Question
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。所以没有JsonArray或JsonObject将在这里工作。请看一下这个问题:stackoverflow.com/questions/15121584/…(如果我没记错的话) -
我明白了。我相信你需要指定一个客户转换器来改造来处理这个问题,可能使用自定义 Gson 对象。
-
我在
retrofit方面没有足够的经验,但是否有可能得到任何形式的回复。我的意思是我可以通过上面的代码从请求中获得响应(因为我可以在我的工作室控制台中看到通过改造而来的数据)
标签: java android json gson retrofit